源码泄露

文件源码泄露

首先通过dirsearch看一下是否是泄露
https://github.com/maurosoria/dirsearch

1、hg 源码泄露

hg init 时会产生 .hg 文件。

利用工具 dvcs-ripper

2、Git 源码泄露

.git 目录内有代码的变更记录等文件,如果部署时该目录下的文件可被访问,可能会被利用来恢复源代码。

1
2
3
4
5
/.git
/.git/HEAD
/.git/index
/.git/config
/.git/description

貌似这两个脚本只能在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
2
$ python git_extract.py http://example.com/.git/ 一个存在 .git 泄露的网站
$ python git_extract.py example/.git/ 一个本地的 .git 路径

例题jarvios的babyphp

3、.DS_Store 文件泄露

Mac OS 中会包含有 .DS_Store 文件,包含文件名等信息。

利用工具 ds_store_exp
例题bugku ctf sql注入2

4、网站备份文件

管理员备份网站文件后错误地将备份放在 Web 目录下。

常见的后缀名:

1
2
3
4
5
6
7
.rar
.zip
.7z
.tar
.tar.gz
.bak
.txt
5、SVN 泄露

敏感文件:

1
2
3
/.svn
/.svn/wc.db
/.svn/entries

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
2
http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构

取回源码

1
bk clone http://url/name dir
8、.swp文件

关于swp文件
使用vi,经常可以看到swp这个文件,那这个文件是怎么产生的呢,当你打开一个文件,vi就会生成这么一个.(filename)swp文件以备不测(不测下面讨论),如果你正常退出,那么这个这个swp文件将会自动删除。下面说不测。
直接访问.submit.php.swp即可