文件源码泄露
首先通过dirsearch看一下是否是泄露
https://github.com/maurosoria/dirsearch
1、hg 源码泄露 ¶
hg init
时会产生 .hg
文件。
2、Git 源码泄露 ¶
.git
目录内有代码的变更记录等文件,如果部署时该目录下的文件可被访问,可能会被利用来恢复源代码。
1 | /.git |
貌似这两个脚本只能在linux下跑?我win10本地不行
python2-GitHack
1 | python GitHack.py http://www.openssl.org/.git/ |
python2-GitHacker(可恢复完整 Git 仓库)
1 | python GitHacker.py http://www.openssl.org/.git/ |
python2-https://github.com/gakki429/Git_Extract
1 | $ python git_extract.py http://example.com/.git/ 一个存在 .git 泄露的网站 |
例题jarvios的babyphp
3、.DS_Store
文件泄露 ¶
Mac OS 中会包含有 .DS_Store
文件,包含文件名等信息。
利用工具 ds_store_exp
例题bugku ctf sql注入2
4、网站备份文件 ¶
管理员备份网站文件后错误地将备份放在 Web 目录下。
常见的后缀名:
1 | .rar |
5、SVN 泄露 ¶
敏感文件:
1 | /.svn |
https://github.com/admintony/svnExploit
检测SVN源代码泄露
1 | python SvnExploit.py -u http://192.168.27.128/.svn |
下载源代码
1 | python SvnExploit.py -u http://192.168.27.128/.svn --dump |
6、WEB-INF / web.xml 泄露 ¶
WEB-INF 是 Java Web 应用的安全目录,web.xml 中有文件的映射关系。
WEB-INF 主要包含一下文件或目录:
/WEB-INF/web.xml
:Web 应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。/WEB-INF/classes/
:含了站点所有用的 class 文件,包括 servlet class 和非 servlet class,他们不能包含在。jar 文件中。/WEB-INF/lib/
:存放 web 应用需要的各种 JAR 文件,放置仅在这个应用中要求使用的 jar 文件,如数据库驱动 jar 文件。/WEB-INF/src/
:源码目录,按照包名结构放置各个 java 文件。/WEB-INF/database.properties
:数据库配置文件。
通过找到 web.xml 文件,推断 class 文件的路径,最后直接 class 文件,在通过反编译 class 文件,得到网站源码。 一般情况,jsp 引擎默认都是禁止访问 WEB-INF 目录的,Nginx 配合 Tomcat 做均衡负载或集群等情况时,问题原因其实很简单,Nginx 不会去考虑配置其他类型引擎(Nginx 不是 jsp 引擎)导致的安全问题而引入到自身的安全规范中来(这样耦合性太高了),修改 Nginx 配置文件禁止访问 WEB-INF 目录就好了:
1 | location ~ ^/WEB-INF/* { deny all; } # 或者return 404; 或者其他! |
7、CVS 泄露 ¶
1 | http://url/CVS/Root 返回根信息 |
取回源码
1 | bk clone http://url/name dir |
8、.swp文件
关于swp文件
使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件以备不测(不测下面讨论),如果你正常退出,那么这个这个swp文件将会自动删除。下面说不测。
直接访问.submit.php.swp
即可