HG泄露(ctfhub)

工具准备:dirsearch、dvcs-ripper

网络安全之渗透测试全套工具篇(内含安装以及使用方法)_dvcs-ripper-CSDN博客

dvcs-ripper:一款perl的版本控制软件信息泄露利用工具,支持bzr、cvs、git、hg、svn...

tree      //树状图列出目录的内容

下载安装dvcs-ripper

https://github.com/kost/dvcs-ripper

 Perl:是一种为扫描任意的文本文件,从这些文本文件中获取信息,基于这些信息打印报表而优化的语言。旨在实用(易用、高效、完整)。

dvcs-ripper工具使用到perl语言,需要在root权限下安装perl环境 :

apt install perl libio-socket-ssl-perl libdbd-sqlite3-perl libclass-dbi-perl libio-all-lwp-perl

一、什么是HG?

hg(Mercurial)总结_hg mercurial-CSDN博客

Mercurial简介-CSDN博客

Mercurial(英文意为水银,所以常被缩写为hg)是一款非常优秀的分布式版本控制系统(DCVS),具有高效率、跨平台、可扩展、使用简便且开源等优点,是目前最为流行的版本控制工具之一。

分布式版本控制系统:

当源码服务器故障或网络不通时,依然能提交你所做的本地修改。

基本命令:

Init          //初始化,创建一个空的仓库。 

Clone         //创建仓库的复本,创建的来源可以是一个http或ssh链接表示的仓库,也可以是本地仓库。


Commit        //提交,即接受所有的改动,将当前版本作为最新版本(也叫tip)。


Revert        //恢复,即撤销所有的改动,恢复到未更改的状态。

Pull          //拉,是将其他仓库有,而当前仓库没有的变更集“下载”到当前仓库。不过这只是添加了变更集,文件并不会改动。(变更集有一个唯一的hash标识,所以很容易区分。) 

Update        //更新,当获取了其他变更集,且需要更改以保持和其他仓库一致时,就需要更新。


Push          //推,将当前仓库的变更集“上传”到其他仓库。

//其他仓库必须支持该操作,并可能需要经过验证。如果是从本地仓库A push到本地仓库B,就相当于用B pull A。此外,push也不会更新仓库的版本,因为它是共享的,需要的人直接选择想要的版本即可。

Merge         //合并。当一个文件同时被多次修改,并存放在多个仓库时,要获得一个统一的版本,就需要合并。

使用HG

//切换到dvcs-ripper的路径下
cd dvcs-ripper
 
//使用dvcs-ripper工具将泄露的.hg文件克隆到本地目录中
perl rip-hg.pl -u http://xxx/.hg

二、HG泄露

在初始化项目时,HG会在当前文件夹下创建一个 .hg 隐藏文件夹,其中包含代码和分支修改记录

等信息。

题目描述:

当开发人员使用 Mercurial 进行版本控制,对站点自动部署。如果配置不当,可能会将.hg 文件夹直接部署到线上环境。这就引起了 hg 泄露漏洞。

HG泄露(ctfhub)

1.题目提示有hg泄露

使用dirsearch扫描,也发现有.hg泄露

python dirsearch.py -u http://xxx    //扫描某个站点

2.使用dvcs-ripper工具将泄露的.hg文件克隆到本地目录中

perl rip-hg.pl -u http://xxx/.hg

克隆泄露的.hg文件发现提示404报错,可能是没有完整下载网站目录

3.查看目录,发现(隐藏的).hg文件

ls -al   //查看当前目录下的所有目录和文件(包括隐藏的文件)

4. 进入.hg文件夹下,查看目录发现一个.txt文件

5..cat查看.txt文件,发现历史记录add flag

6.利用正则匹配找一下flag,发现flag.txt文件 提示没有这个文件,它被删除了

grep -r flag

7.于是在url直接访问文件名得到flag

 也可使用curl命令访问 得到flag

curl http://xxx/flag.txt        //利用URL规则在命令行下工作的文件传输工具

grep命令

linux grep和find命令_--quiet find-CSDN博客

功能:

查找文件里符合条件的字符串(强大的文本搜索工具)

它能使用正则表达式搜索文本,并把匹配的行打印出来。

 参数:

-a   //不忽略二进制的数据。

-b   //在显示符合范本样式的那一列之前,标示出该列第一个字符的位编号。

-c   //计算符合范本样式的列数。
 
-d  //指定要查找的是目录(而非文件)

-e   //指定字符串作为查找文件内容的范本样式。

-i   //忽略字符大小写的差别。

-l   //列出文件内容符合指定的范本样式的文件名称。

-L   //列出文件内容不符合指定的范本样式的文件名称。

-q   //不显示任何信息。

-r   //指定要查找的目录。

-s   //不显示错误信息。

-v   //反转查找。

-V   //显示版本信息。

-w   //只显示全字符合的列。

-x   //只显示全列符合的列。

-y   //忽略字符大小写的差别。
--help   在线帮助。
  • 24
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值