文件泄露
git源码泄露
原理:在git init初始化目录时,会生成一个.git目录来记录代码修改情况,如果在上传时没有将.git目录删除的话,就会造成源码泄露
可以利用的漏洞工具:GitHack
一般使用方法为:
1 | /.git/index.php |
SVN源码泄露
原理:在用SVN管理本地代码时会生成一个.svn隐藏文件夹,其中有重要的源码信息,如果在发布代码的时候直接复制代码,而没有导出代码的话,就会将源码暴露在外网的环境中,可以利用.svn/entries或/.svn来获取
可以利用的漏洞工具:Seay SVN漏洞利用工具
hg源码泄露
原理:Mercurial是一种轻量级分部版本控制系统,在使用hg init初始化代码时会生成.hg
漏洞利用工具:dvcs-ripper
CVS泄露
原理:CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到文件同步的目的。
可以利用:
1 | /CVS/Root 返回根信息 |
漏洞利用工具:dvcs-ripper
Bazaar/bzr泄露
原理:bzr是一个版本控制工具,可以利用/.bzr/造成源码泄露
网站备份压缩文件
原理:管理员将网站源代码备份在web目录下
常见的备份文件后缀:
1 | .rar |
漏洞利用工具:御剑、diramp、dirsearch
WEB-INF/web.xml泄露
原理:WEB-INF是java的web应用的安全目录,如果想在页面直接访问文件,需要通过web.xml文件查找访问文件的映射关系
WEB-INF主要包含文件或目录
1 | WEB-INF/web.xml:web应用程序配置文件,描述了servlet和其他的应用组件配置及命名规则 |
DS_Store文件泄露
原理:.DS_Store是mac下的finder用来保存展示文件或文件夹的数据文件,每个文件夹下对应一个。如果将DS_Store部署到服务器中,就会造成文件泄露,特别是备份文件、源码文件
swp文件泄露
原理:此泄露为vim缓存信息泄露,swp文件是在编辑文件时自动生成的临时文件,当正常退出文件时,临时文件会被删除,但当不正常退出时会保存,利用/.filename.swp,swp文件也可能以swo形式,为.filename.swo
例子:
1 | index.php.swp |
Github源码
原理:很多人将源码放在托管平台托管,所以通过搜索关键字就可以下载网站源码
phps源码泄露
构造payload为index.phps,即可得到源码
数据库文件泄露
原理:数据库外泄是指数据库文件泄露,比如asp+access框架的数据库文件的泄露,此文件为mdb类型的文件,而SQLite数据库的文件泄露的文件类型是.db,而数据库系统会将数据保存在它们格式的文件中,而数据库文件又在web目录之下,因此可以通过下载数据库来获取数据,以asp+access框架的数据库为例:
1 | 1.某些CMS的目录下存在/data/data.mdb文件,如:ctfshow中的web信息搜集的web20,构造url/db/db.mdb,即可下载,然后用记事本打开 |
实例
一开始先用dirsearch扫描,发现有robots.txtx文件,然后访问发现1ndexx.php,但是当我们构造/1ndexx.php,发现页面没东西,我们可以猜想是不是源码泄露,通过尝试,发现时swp文件泄露,因此构造/1ndexx.php.swp,可以得到源码
1 | <?php $link = mysql_connect('localhost', 'root'); ?> |
本来打算绕过正则,但是构造:/index.php?code=
就可以在phpinfo()中的全局变量中找到flag