一、敏感目录泄露。
1.git泄露
??在开发过程中经常会遗忘.git文件夹,导致攻击者可以通过.git文件夹中的信息获取开发人员提交过的所有源码。
(1)常规的git泄露
(2)git回滚
??git作为一个版本控制工具,会记录每次提交(commit)的修改,所以当题目存在git泄露时,flag(敏感)文件可能在修改中被删除或被覆盖了,这时我们可以利用git的“git reset”命令来恢复到以前的版本。
./scrabble http://x.x.x.x 获取源码
git reset--hardHEAD^ 跳到上一个版本
git log-stat 查看每个commit修改了哪些文件
git diff HEADcommit-id 比较在当前版本与想查看的commit之间的变化
(3)git分支
python GitHacker.py http://127.0.0.1:8000/.git/
git log--all master分支的信息
git reflog 查看checkout记录
wget http://127.0.0.1:8000/.git/refs/heads/secret 手动下载secret分支的head信息
??在GitHacker的代码中可以看到,他是先下载object文件,再使用git fsck检测,并继续下载缺失的文件。此处可以直接复用检测缺失文件并恢复的fixmissing函数。我们注释掉程序最后调用main的部分,修改为如下代码: ??继续运行该脚本,进入生成的主文件夹,执行命令:git log–all或git branch-v,得到sercet分支信息,git log中找到对应的hash,执行git diff HEAD xxxx(hash前四位)。
2.SVN泄露
??造成SVN源代码漏洞的主要原因是管理员操作不规范将SVN隐藏文件夹暴露于外网环境。工具:https://github.com/kost/dvcs-ripper。
3.HG泄露
??HG会在当前文件夹下创建一个.hg隐藏文件夹,其中包含代码和分支修改记录等信息。工具地址:https://github.com/kost/dvcs-ripper
4.目录扫描工具。
????https://github.com/maurosoria/dirsearch
二、敏感备份文件。
??通过一些敏感的备份文件,我们往往能获得某一文件的源码, 亦或网站的整体目录等。
1.gedit备份文件
??在Linux下,用gedit编辑器保存后,当前目录下会生成一个后缀为“~”的文件,其文件内容就是刚编辑的内容。
2.vim备份文件
??当用户在编辑文件但意外退出时,会在当前目录下生成一个备份文件,文件名格式为:.文件名.swp。vim在第一次意外退出时生成的备份文件为*.swp,第二次意外退出时的为*.swo,第三次退出时的为*.swn,以此类推。文件恢复方法:
3.常规文件
- Robots.txt:记录一些目录和CMS版本信息。
- Readme.md:记录CMS版本信息,或者是github地址。
- www.zip/rar/tar.gz:往往是网站的源码备份。
三、Banner识别
- 自行搜集指纹库:利用github大量成型且公开的CMS指纹库。
- 使用工具:pip install python-wappalyzer。
- wappalyzer插件,谷歌商店可以直接安装。
|