编辑器临时文件泄漏vim临时文件
程序员使用vim编辑器撰写一个index.php文件时,会有一个.index.php.swp文件,如果文件正常退出,则该文件被删除,如果异常退出,该文件则会保存下去,该文件可以拿来恢复异常退出的index.php,同时多次意外退出并不会覆盖旧的.swp文件,而是会生成一个新的,例如.swo文件。
恢复文件
vim -r 恢复的文件名
前提是.index.php.swp存在于该目录下
vim备份文件
默认状况下使用Vim编程,在更改文件后系统会手动生成一个带~的备份文件,某些状况下可以对其下载进行查看;
以 index.php 为例 第一次形成的缓存文件名为 .index.php.swp
第二次意外退出后,文件名为.index.php.swo
第三次形成的缓存文件则为 .index.php.swn
注意:index前有 " . "
PHPSTORM
使用phpstorm改建项目时,会生成一个.idea文件夹,这个文件夹有一个workspace.xml,访问可以得到一些信息。
网站备份压缩文件
在网站的使用过程中,往往还要对网站中的文件进行更改、升级。此时就须要对网站整站或则其中某一页面进行备份。当备份文件或则更改过程中的缓存文件由于各类成因而被留在网站web目录下,而该目录又没有设置访问权限时,便有或许造成备份文件或则编辑器的缓存文件被下载,导致敏感信息泄漏,给服务器的安全埋下隐患。
漏洞原因及害处
该漏洞的原因主要有以下两种:
服务器管理员错误地将网站或则网页的备份文件放置至服务器web目录下。编辑器在使用过程中手动保存的备份文件或则临时文件由于各类成因没有被删掉而保存在web目录下。漏洞测试
该漏洞常常会导致服务器整站源代码或则部份页面的源代码被下载,利用。源代码中所包含的各种敏感信息,如服务器数据库连结信息,服务器配置信息等会因而而泄漏,造成很大的损失。被窃取的源代码还可能会被适于代码审计,进一步运用而对整个系统的安全埋下隐患。
常见备份压缩文件
.rar
.zip
.7z
.tar.gz
.bak
.swp
.txt
.html
使用disearch扫描
python dirsearch.py -u url -e *
版本管理硬件引起的泄密git源码泄露
git在初始化项目的时侯, 会在项目的根目录(可用git rev-parse --show-toplevel查看)创建一个名为.git的掩藏文件夹, 里面包含了本地所有commit的历史记录. 如果无意间将这个目录放在WEB的路径下使用户可以访问,那么这也就泄漏了几乎所有的源代码跟其他其他敏感信息.
该文件可以来恢复源代码
fuzz:
http://url/.git/config
若存在该页面,可以看见配置信息网站漏洞 源码被下载,说明存在该漏洞
漏洞运用:
工具:GitHack
python GitHack.py http://url/.git/
git log可以查看递交历史
git diff查看git递交的不同处
stash命令可适于临时保存跟恢复更改,可跨分支
git stash list查看所有保存的记录列表
git stash pop,从 git 栈中弹下来一个文件
工具:dvcs-ripper
rip-hg.pl -v -u http://url/.git
hg泄漏
与git类似, hg在初始化项目时, 会在项目的根目录下争创一个名为.hg的掩藏文件夹,里面包含了代码跟分支的更改记录跟开发人员的相关信息. 当开发人员使用 Mercurial 进行版本控制网站漏洞 源码被下载,对站点手动布署。如果配置不当,可能会将.hg 文件夹直接布署至线上环境。这就造成了 hg 泄露漏洞。
fuzz:
http://url/.hg/
漏洞运用:
工具:dvcs-ripper
rip-hg.pl -v -u http://url/.hg
SVN泄漏
svn同样在项目根目录下会争创一个名为.svn的掩藏文件夹, 包含了所有分支commit信息跟代码记录.
fuzz:
http://url/.svn/entries
漏洞运用:
工具:dvcs-ripper
rip-svn.pl -v -u http://www.example.com/.svn/
bzr/Bazaar泄漏
bzr在初始化项目时(bzr init/init-repo), 会在项目根目录形成名为.bzr的掩藏目录, 同样显露了源代码跟用户信息.
漏洞运用:
工具:dvcs-ripper
rip-bzr.pl -v -u http://www.example.com/.bzr/
CVS泄露
cvs项目在初始化(cvs checkout project)的时侯, 会在project目录下争创一个名为CVS的目录,
其中保存了各个文件的更改跟commit记录. 通过此目录可以获取代码的历史版本. 其中两个关键文件为:
CVS/Root跟CVS/Entries, 分别记录了项目的根信息跟所有文件的结构
fuzz
http://url/CVS/Root 返回根信息
http://url/CVS/Entries 返回所有文件的结构
漏洞运用
取回源码的命令,这个命令的意思就是把远端一个名为name的repo clone至本地名为dir的目录下。
bk clone http://url/name dir
查看所有的改变的命令,转到download的目录
bk changes