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   在线帮助。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/624086.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

毕设论文的分类号与UDC查询

对于毕业论文分类号与UDC,可以根据个人研究领域查询。 中图分类号查询链接: 中图分类号查询 | 中国图书馆分类法 | 中图法 | 中图分类号 (clcindex.com)https://www.clcindex.com/category/ UDC查询链接: UDC Summaryhttps://udcsummary.info/php/ind…

Appium Desktop + Appium Inspector + 模拟器连接

一、环境预备 1.你需要安装好配置好adb,确保可以在命令行直接运行adb指令 2.安装Appium Desktop、Appium Inspector 、 模拟器 二、启动appium 服务 启动后,画面如下: 三、启动模拟器 此时,启动模拟器,打开电脑cmd窗口&#x…

数模转换(ADC)、IIC、2440内部IIC寄存器、主机发送、主机接收

我要成为嵌入式高手之4月15日ARM第八天!! ———————————————————————————— ADC 概念 ADC是模拟到数字转换器的缩写。是一种电子设备或者模块。用于将连续变化的模拟信号转换为离散的数字信号,以便数字系统能够对…

【北京迅为】《iTOP-3588开发板系统编程手册》-第7章 Linux终端会话和进程管理

RK3588是一款低功耗、高性能的处理器,适用于基于arm的PC和Edge计算设备、个人移动互联网设备等数字多媒体应用,RK3588支持8K视频编解码,内置GPU可以完全兼容OpenGLES 1.1、2.0和3.2。RK3588引入了新一代完全基于硬件的最大4800万像素ISP&…

基于ADB的Scrcpy实现电脑控制手机

Scrcpy是一个开源的,基于ADB(Android 调试桥)的手机到电脑上的投屏操控的实现,本文将介绍如何搭建开发环境,使得在Windows系统中去控制投屏的安卓手机。 1. 安装投屏软件 下载Scrcpy软件到电脑上,该软件中…

类的加载,反射和注解详解

文章目录 类的加载概述类加载器作用分类获取类加载器的方式 双亲委派机制3种加载器的关系工作机制 类加载器的应用 反射概述关键获取类对象获取构造器对象获取方法对象获取成员变量对象作用 注解概述作用自定义注解格式属性类型 元注解常见的元注解 注解解析概述方法技巧 类的加…

windows停掉jenkins服务

在Windows系统中,如果你需要停止Jenkins服务, 使用服务管理器(Service Manager): 打开“运行”对话框(Win R),输入services.msc,然后回车。 在服务列表中找到“Jenkins”服务&am…

财务软件行业背景-易舟云

财税是每个企业的基本基石之一。财务报告讲述了公司的故事——它的利润和亏损、收益和债务、税收支出以及可用于未来增长的资产。随着信息时代的飞速发展,财务信息化建设日益完善,大量基于计算机网络的应用系统已经逐步深入财务管理领域。传统的会计录入…

1102: 顺序表上数据的划分问题的实现

解法&#xff1a; #include<iostream> #include<vector> #include<stack> #include<queue> using namespace std; int main() {int n;cin >> n;vector<int> arr(n);stack<int> stk;queue<int> que;for (auto& x : arr) c…

【多线程】阻塞队列 | put()方法 | take()方法 | 生产者-消费者模式 |实现阻塞队列

文章目录 阻塞队列1.生产者-消费者模式生产者消费者模型的意义&#xff1a;1.解耦合2.削峰填谷&#xff1a; 2.阻塞队列的使用BlockingQueue 3.实现阻塞队列唤醒&#xff1a;使用阻塞队列实现生产者消费者模型 阻塞队列 阻塞队列是一种特殊的队列&#xff1a; 1.是线程安全的。…

linux管理进程

一、程序 程序&#xff1a;执行特定任务的一串代码 1.是一组计算机能识别和执行的指令&#xff0c;运行于电子计算机上&#xff0c;满足人们某种需求的信息化工具 2.用于描述进程要完成的功能&#xff0c;是控制进程执行的指令集 二、进程和线程 1.进程 进程是程序的执行…

CSS导读 (CSS的背景 上)

&#xff08;大家好&#xff0c;今天我们将继续来学习CSS的相关知识&#xff0c;大家可以在评论区进行互动答疑哦~加油&#xff01;&#x1f495;&#xff09; 目录 四、CSS的背景 4.1 背景颜色 4.2 背景图片 4.3 背景平铺 4.4 背景图片位置 4.4.1 参数是方位名词 …