Web源码泄露总结

在web渗透测试以及CTF中经常可以遇到源码泄露的问题,本文对常见的源码泄露进行了一个总结,有新的姿势持续更新!

0x00 Mercurial .hg源码泄露

hg在初始化代码库的时候,会在当前目录下面产生一个.hg的隐藏文件

e.g.http://www.example.com/.hg/

利用:
工具dvcs-ripper

rip-hg.pl -v -u http://www.example.com/.hg

0x01 .git源码泄漏

在运行git init初始化的时候,在当前目录下产生一个隐藏的.git文件,这个目录是 Git 用来跟踪管理版本库的,里面存放了所提交的文档索引内容,Git 可以根据该文件夹内的内容对其所管理的文档进行内容跟踪,从而实现版本控制。如果使用者采用复制整个文件夹的方式将.git文件部署。或者其他的错误操作让.git文件暴露在外网环境中,攻击者就可以利用 .git 文件夹内的文件,还原重建工程源代码。

e.g.http://www.example.com/.git/

利用:
工具:GitHack

GitHack.py http://www.example.com/.git/
该工具其他信息参考:http://www.freebuf.com/sectool/66096.html

dvcs-ripper

rip-git.pl -v -u http://www.example.com/.git/

0x02 .DS_Store文件泄漏

在发布代码时未删除文件夹中隐藏的.DS_store,被发现后,获取了敏感的文件名等信息。

e.g.http://www.example.com/.ds_store

利用:
工具:dsstoreexp

python ds_store_exp.py http://www.example.com/.DS_Store

0x03 .svn文件泄漏

使用svn版本控制系统时,由于错误操作将.svn文件暴露在外网环境中,即可利用该文件还原出服务器源码、SVN服务器账号密码等信息。

e.g.http://www.example.com/.svn/entries

利用:
工具:dvcs-ripper

rip-git.pl -v -u http://www.example.com/.git/

Seay-Svn

图形化工具,使用简单

0x04 .CVS文件泄漏

利用:

http://www.example.com/CVS/Root 返回根信息
http://www.example.com/CVS/Entries 返回所有文件的结构
bk clone http://www.example.com/test dir 把远端一个名为test的repo clone到本地名为dir的目录下.
bk changes 查看所有的改变的命令,转到download的目录

##0x05 Bazaar/bzr
Bazaar是一个版本控制系统,可帮助你随时追踪项目的历史,并与他人开展便利地合作。

利用:
工具:dvcs-ripper

rip-bzr.pl -v -u http://www.example.com/.bzr/

0x06 备份文件合集:

在CTF中,备份文件这个考点经常出现,而在对网站进行修改或者升级过程中也会生成备份文件,如果这些文件未及时删除,而且文件又能被访问到时,就很有可能被恶意下载,利用。
常见格式

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
.php~
.un~
.swp
.rar
.zip
.7z
.tar
.gz
.tar.gz
.~
.bak
.txt
.html
.vim
.swn
.swo
.old

0x07 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。
/WEB-INF/lib/:存放web应用需要的各种JAR文件,放置仅在这个应用中要求使用的jar文件,如数据库驱动jar文件
/WEB-INF/src/:源码目录,按照包名结构放置各个java文件。
/WEB-INF/database.properties:数据库配置文件。

利用
通过找到web.xml文件,推断class文件路径,最后下载class文件,通过反编译class文件,得到网站源码。

防御:禁止访问WEB-INF目录:location ~ ^/WEB-INF/* { deny all; }

-------------本文结束感谢您的阅读-------------
  • Post author: SuNu11
  • Post link: http://sunu11.com/2017/04/28/11/
  • Copyright Notice: All articles in this blog are licensed under BY-NC-SA unless stating additionally.