敏感信息收集
敏感信息相关文件
robots.txt
index.php~
.index.php.swp
index.php.swp
index.php.bak
.index.php~
index.php.bak_Edietplus
index.php.~
index.php.~1~
index.php
index.php~
index.php.rar
index.php.zip
index.php.7z
index.php.tar.gz
www.zip
www.rar
www.zip
www.7z
www.tar.gz
www.tar
web.zip
web.rar
web.zip
web.7z
web.tar.gz
web.tar
wwwroot.rar
web.rar
readme.md
参考来源:
https://www.cnblogs.com/Lmg66/p/13598803.html
git泄露
GitHack的下载安装地址:https://github.com/lijiejie/GitHack
python2 GitHack.py ******.git
其中******表示网址
WEB-INF/web.xml 泄露
相关知识点:
WEB-INF是Java的WEB应用的安全目录,如果想在页面中直接访问其中的文件,必须通过web.xml文件对要访问的文件进行相应映射才能访问。
WEB-INF 主要包含以下文件或目录:
WEB-INF/web.xml : Web应用程序配置文件, 描述了servlet和其他的应用组件配置及命名规则.
WEB-INF/database.properties : 数据库配置文件
WEB-INF/classes/ : 一般用来存放Java类文件(.class)
WEB-INF/lib/ : 用来存放打包好的库(.jar)
WEB-INF/src/ : 用来放源代码(.asp和.php等)
Servlet访问URL映射配置:
由于客户端是通过URL地址访问Web服务器中的资源,所以Servlet程序若想被外界访问,必须把Servlet程序映射到一个URL地址上,这个工作在web.xml文件中使用元素和元素完成。元素用于注册Servlet,它包含有两个主要的子元素:和,分别用于设置Servlet的注册名称和Servlet的完整类名。一个元素用于映射一个已注册的Servlet的一个对外访问路径,它包含有两个子元素:和,分别用于指定Servlet的注册名称和Servlet的对外访问路径。例如:
<servlet>
<servlet-name>ServletDemo1</servlet-name>
<servlet-class>cn.itcast.ServletDemo1</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>ServletDemo1</servlet-name>
<url-pattern>/ServletDemo1</url-pattern>
</servlet-mapping>
思路:
通过找到 web.xml 文件,推断 class 文件的路径,最后直接 class 文件,再通过反编译 class 文件,得到网站源码。
例题
来自buuctf上的 [RoarCTF 2019]Easy Java
打开页面发现是个登录框,尝试了一下没有什么效果,点击help之后留意到地址栏变成
***/Download?filename=help.docx
推测可能存在文件下载漏洞
尝试传入WEB-INF/web.xml
参数
?filename=WEB-INF/web.xml
发现也没有什么作用,这时候改变请求方式变成post请求,观察burpsuite返回包,发现在里面存在flag关键字
<servlet>
<servlet-name>FlagController</servlet-name>
<servlet-class>com.wm.ctf.FlagController</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>FlagController</servlet-name>
<url-pattern>/Flag</url-pattern>
</servlet-mapping>
通过url访问Servlet的方式是:
找到对应文件名,然后通过这个文件名找到对应的servlet,再通过这个servlet的文件名,获取到其具体的servlet文件。因为这个是类中的文件,所以后缀要加.class
尝试下载这个文件,根据com.wm.ctf.FlagController
写出文件路径
filename=WEB-INF/classes/com/wm/ctf/FlagController.class
下载文件后发现文件里面有一段base64加密的字符串,解密之后得到flag
参考来源:
https://www.cnblogs.com/Lmg66/p/13598803.html
https://www.cnblogs.com/karsa/p/13130130.html