一、SVN泄露
(1)什么是SVN
一种开放源代码版本控制系统,用于管理项目的文件和代码
SVN能做什么
1.共享资源并修改
2.记录资源变更,可恢复到任意一个修改点
漏洞描述
版本控制系统中的一个安全漏洞,允许未授权的用户访问SVN仓库的内容,可能包含敏感信息,如源代码或配置文件。
原理
.SVN的隐藏文件夹会通过使用SVN管理本地代码自动生成,里面会包含重要的源码信息,发布代码时直接将代码文件夹复制到web服务器上,使.SVN暴露
(2)步骤
dirsearch扫描判断是否存在漏洞,在dvcs-ripper中进行克隆(./rip-svn.pl -u url.svn/),从wc.db中找到有flag的文件的文件名并访问
下载安装dirsearch
可以查看git泄露的文章,下面是链接
http://t.csdnimg.cn/owf77
下载安装dvcs-ripper
在Windows中下载后拖到kali配置
GitCode - 开发者的代码家园
在root下输入
apt install libparallel-forkmanager-perl libredis-perl libalgorithm-combinatorics-perl
安装依赖包
sudo apt-get install perl libio-socket-ssl-perl libdbd-sqlite4-perl libclass-dbi-perl libio-all-lwp-perl
sudo apt-get install libparallel-forkmanager-perl libredis-perl libalgorithm-combinatorics-perl
sudo apt-get install cvs subversion git bzr mercurial
练习
ctfhub技能树SVN泄露
首先用dirsearch扫描,发现存在SVN泄露
在dvcs-ripper中的使用./rip-svn.pl -u url.svn/克隆
用ls -al查看当前目录下所有文件及目录,发现.svn文件
进入后用ls查看,发现有wc.db(数据库文件,里面会有想要的一切)
找到有flag文件
尝试用cat查看,发现被删除
题目提示在旧版本源代码中
查看pristine文件(存放的是原始的文件,可能包含备份的文件,是源代码文件副本)
最后在62中找到flag
二、HG泄露
(1)什么是HG
HG就是mercuri的缩写,是一款DCVS(分布式版本控制系统),具有高效率、跨平台、可扩展、使用简便且开源等优点,是目前最为流行的版本控制工具之一
DCVS:即使源码服务器故障或网络连接出错也能提交本地修改
原理
在初始化项目时,HG会在当前文件夹下创建一个 .hg 隐藏文件夹,其中包含代码和分支修改记录
等信息。配置不当会使.hg文件夹部署到线上环境,引发漏洞
(2)基本命令
http://t.csdnimg.cn/K7LxV
Init 创建一个空的仓库
Clone 创建仓库的副本,创建的来源可以是一个http或ssh链接表示的仓库,也可以是本地仓库
Commit 提交,将当前版本作为最新版本(也叫tip)
Revert 恢复,即撤销所有的改动,恢复到未更改的状态
Pull 将其他仓库有,而当前仓库没有的变更集“下载”到当前仓库
Update 更新,当获取了其他变更集,且需要更改以保持和其他仓库一致时需要更新
Push 将当前仓库的变更集“上传”到其他仓库去
Merge 合并,当一个文件同时被多次修改,并存放在多个仓库时,要获得一个统一的版本,就需要合并
(3)步骤
dirsearch扫描是否存在HG泄露,在dvcs-ripper中进行克隆(perl rip-hg.pl -u url.hg),找到.hg文件
dirsearch和dvcs-ripper的下载安装均以说过,不多赘述
练习
ctfhub技能树HG泄露
发现存在HG泄露
在dvcs-ripper中进行克隆,发现404,无法响应
查看目录,找到.hg隐藏文件
查看.hg文件里的txt文件,发现有add flag的记录
利用grep命令找flag,发现txt文件,用cat查看发现被删除了
接下来用curl命令访问,得到flag
(4)补充
grep命令
http://t.csdnimg.cn/aSz0C http://t.csdnimg.cn/5fQFb
用于查找文件中符合条件的字符串,可以过滤文本内容
常见option:
-a | 不忽略二进制数据 |
-d | 指定要查找的是目录 |
-i | 忽略字符大小写差别 |
-q | 不显示任何信息 |
-s | 不显示错误信息 |
-r | 指定要查找的目录 |
-n | 显示匹配到的行号 |
-v | 反转查找,排除要匹配的结果 |
-c | 只统计匹配到结果的行数 |
-o | 只输出文件中匹配到的部分 |
-w | 只匹配过滤的单词 |
-E | 使用扩展正则表达式 |
-V | 反转查找 |
curl命令
http://t.csdnimg.cn/yauyw
利用URL规则在命令下工作的文件传输工具