备份文件下载
.DS_Store
.DS_Store 是 Mac OS 保存文件夹的自定义属性的隐藏文件。通过.DS_Store可以知道这个目录里面所有文件的清单
- 网址后输入.DS_Store下载文件
- 丢到linux直接cat,发现乱码,但有一个类似flag的txt隐藏文件
- 尝试输入改txt名字到网址后访问,得到flag
Git泄露
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。尝试使用github上BugScanTeam的GitHack
常用命令速查表:
Log
- 首先git一下BugScanTeam的GitHack
git clone <url>
- 输入网址,拿到网站源代码
(坑:我的kali是2023,看别人博客写的固定格式是python2命令开头)
python2 GitHack.py http://challenge-f676dbdd5009786d.sandbox.ctfhub.com:10800/.git
3. cd到该网站目录下,使用git show查看日志文件
git show ;
git log ;
Stash
详情见这篇文章,它介绍了git stash的概念理解,简单来说git stash用于想要保存当前的修改,但是想回到之前最后一次提交的干净的工作仓库时进行的操作.git stash将本地的修改保存起来,并且将当前代码切换到HEAD提交上.
- githack扫描
python2 GitHack.py http://challenge-0b370909f9d0880b.sandbox.ctfhub.com:10800/.git
- cd到该目录下,输入git stash show或git stash list
git stash list ;
git stash show ;
发现添加flag记录和文件
3. 执行git stash pop,还原管理员删除flag.txt文件前的版本
git stash pop
成功回退,还原flag文件,打开查看。
Index
按照上述githack方法直接git,git完就有flag.txt
SVN泄露
当开发人员使用 SVN 进行版本控制,对站点自动部署。如果配置不当,可能会将.svn文件夹直接部署到线上环境。这就引起了 SVN 泄露漏洞
- 加/.svn/entries,下载文件(这是手工检查有无svn泄露漏洞的步骤)
- 后来发现以下利用这个exp工具才能解出来:dvcs-ripper
git clone https://github.com/kost/dvcs-ripper
并安装工具依赖库
sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl
- 使用dvcs-ripper工具将泄露的文件下载到本地目录中
./rip-svn.pl -u http://challenge-eaa14bd61e9758c8.sandbox.ctfhub.com:10800/.svn
- 查看目录,查看wc.db,多用grep -去找flag,ctfhub,这一步是从别人那里学到的
- 上述方法能适用于大项目,这个项目不大,所以一个一个遍历也能找到,只是多花点时间。大佬博客分析,网页提示说flag在服务端旧版本的源代码中,那么应该检查一下pristine文件是否存放flag
最终在.svn/pristine/72文件夹下找到
HG泄露
当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞
- 这题还是试试使用dvcs-ripper,不过跟上题不同的是使用的是./rip-hg.pl 而不是svn
./rip-hg.pl -u http://challenge-d9b2d8ece61934e7.sandbox.ctfhub.com:10800/.hg/
提示cannot find hg, 尝试找解决方法,发现公司网问题,几个依赖文件无法下载,只好偷机查看.hg下的一些文件
发现flag文件名,并访问url+flag_2871526876.txt得到flag
Summary
- 多积累经验,多知道各种配置文件的位置,为什么要访问那个路径?多去撞路径,思维打开
- 工具依赖缺失问题暂时解决不了,(详见我电脑里配置问题.txt),尽快补上,越快越好,方便使用