ctfhub中的SNV泄露和HG泄露

本文探讨了SVN和Mercurial版本控制系统中的SNV和HG泄露问题,解释了泄露的危害,如源代码盗窃、安全威胁,以及如何利用dvcs-ripper工具检测和利用泄露。
摘要由CSDN通过智能技术生成

目录

SNV泄露

一、什么是snv泄露

二、 snv泄露的危害

三、例题(ctfhub)

HG泄露

一、什么是HG泄露

二、HG泄露的危害

三、相关的命令

四、HG泄露的利用

五、相关例题


SNV泄露

一、什么是snv泄露

SVN(Subversion)是一种开放源代码版本控制系统,用于管理项目的文件和代码。SVN是程序员常用的源代码版本管理软件。在使用 SVN 管理本地代码过程中,使用 svn checkout 功能来更新代码时,项目目录下会自动生成隐藏的.snv文件夹(Linux上用 ls 命令看不到,要用 ls -al 命令),其中包含重要的源代码信息。

资料参考:SVN详解_svn cp-CSDN博客

subvert(颠覆) + verson(版本) = subversion        --> svn

二、 snv泄露的危害

一旦网站出现SVN漏洞,其危害远比SQL注入等其它常见网站漏洞更为致命,因为黑客获取到网站源代码后,一方面是掠夺了网站的技术知识资产,另一方面,黑客还可通过源代码分析其它安全漏洞,从而对网站服务器及用户数据造成持续威胁(git同理)。

黑客可以利用其中包含的用于版本信息追踪的 entries 文件(.svn/entries 文件),获取到服务器源码、svn服务器账号密码等信息;利用 wc.db 数据库文件(.svn/wc.db 文件),获取到一些数据库信息;更严重的问题在于,SVN产生的.svn目录下还包含了以.svn-base结尾的源代码文件副本(低版本SVN具体路径为text-base目录,高版本SVN为pristine目录),如果服务器没有对此类后缀做解析,则可以直接获得文件源代码。

三、例题(ctfhub)

资料参考:svn信息泄露实战测试_svn泄露-CSDN博客

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

1.用disearch扫描,发现有svn泄露,命令是:python dirsearch.py -u http://xxx    //扫描某个站点

2.在linux中安装好dvcs-ripper,先进入dvcs-ripper的路径下

3.使用perl rip-svn.pl -u http://xxx/.svn,将泄露的文件克隆到本地目录中

4.查看目录,也发现有svn泄露

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

5.使用cd命令进入.svn,然后用ls查看文件

6.进入wc.db,.svn的数据库文件

7.发现有关flag的文件,但是显示没有这个文件

8.题目提示flag 在服务端旧版本的源代码中,看一下pristine文件(源代码文件副本)是否有flag。

9. 进入bf目录进行查看,发现没有flag

10.进入另一个目录,得到flag

HG泄露

一、什么是HG泄露

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

二、HG泄露的危害

如果Mercurial服务器的安全措施不当或用户不小心,可能会导致Mercurial源码的信息泄露的问题,而Mercurial源码信息泄露的原理是因为Mercurial服务器上的源代码未被正确保护,导致未经授权的用户可以轻易地访问和下载代码,这可能会导致以下问题:

    1.暴露源代码:未经授权的用户可以轻易地访问和下载源代码,包括敏感信息,例如密码、API密钥和凭据等

    2.增加恶意攻击的风险:未经授权的用户可以轻易地访问和下载源代码,黑客可以使用这些代码来发起攻击,例如通过发现代码漏洞来入侵服务器或者应用程序

三、相关的命令

Init是指初始化,也就是创建一个空的仓库。

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

Commit是指提交,即接受所有的改动,将当前版本作为最新版本(也叫tip)。注意这个提交和集中式SCM不同,它只提交的本地仓库,而且本地仓库会 详细记录所有的变动(称为变更集或改动集)。因此不用客气,多提交几次也没关系,因为不影响别人的仓库。而如果怕影响自己的话,可以clone一个复本, 再对复本进行改写和提交。

Revert是指恢复,即撤销所有的改动,恢复到未更改的状态。右键菜单里你是找不到它的,原因后面再提。

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

Update的意思就是更新,当获取了其他变更集,且需要更改以保持和其他仓库一致时,就可以执行它了.

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

Merge就是指合并。当一个文件同时被多次修改,并存放在多个仓库时,要获得一个统一的版本,就需要合并。对于翻译而言,一个文本可能同时会分给多个人,于是合并时只需要接受每个人的改动即可。

四、HG泄露的利用

资料参考:hg(Mercurial)总结_hg mercurial-CSDN博客

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

//使用dvcs-ripper下载泄露的文件

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

五、相关例题

1.切换到dvcs-ripper的路径下之后,使用dvcs-ripper工具将泄露的.hg文件克隆到本地目录中,提示404报错,可能是没有完整下载网站目录

 2.使用ls -al //查看当前目录下的所有目录和文件(包括隐藏的文件),发现(隐藏的).hg文件

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

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

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

6.使用curl命令访问,得到flag

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值