源码泄露问题
git源码泄露问题
githack是什么
- GitHack是一个.git泄露利用测试脚本,通过泄露的文件,还原重建工程源代码。
Git 源码泄露
开发人员会使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以利用这个漏洞直接获得网页源码。
确定是否存在泄漏
想要确定是否存在这个漏洞,可以通过以下方式。首先是看看有没有提示醒目地指出 Git,如果有就考虑存在。如果没有也可以使用 dirsearch 工具扫描后台,如果存在则会扫描出 .git 目录如图所示。
常见问题
- githack只能在python2环境下运行,否则会出现
例题
攻防世界lottery
打开网页,让我们买彩票赚钱,随便买一下
赚够足够的钱,才能够买flag
用dirsearch扫一下后台,发现有git
或者用御剑扫以下后台,发现robot协议文件,发现禁用git,很可疑,判断是git源码泄露
用githack扫描url,把文件都下载下来
python githack.py URL
拼接githack.py的路由时,要到/.git,因为.git隐藏文件中是所有源码,不能只拼接到根目录,因为不在根目录下
打开其中的 “api.php” 文件审计代码,注意到这里有个 buy() 函数,这个是我们在网页买彩票会调用的函数。其中我们看到 numbers 这个变量是我们能操作的,函数会以数组的形式提取每位数字。
- 接收data变量是通过file_get_contents(‘php://input’),并进行json_decode,我的理解是和golang中接收后用unmarshal进行解析一样
- file_get_contents(‘php://input’)和$_POST在接收变量值的方面没有什么不同,都可以通过burp进行传入值,但是在接收格式的方面不同
- file_get_contents(‘php://input’)不能接收curl post过来的数组,用file_get_contents是为了接收json字符串,$_POST为了接收一维数组或&拼接的标准格式的键值对字符串
- 当请求data变量中的action参数为buy时,才会执行buy函数并传入data变量
- 才能对numbers值进行匹配
- 由于随机变量是数字,因此我们可以使用 true 来满足比较,但是我们显然不能在输入框输入 7 个 “true”。因此我们考虑修改数据包,通过抓包发现数据的传输是通过传一个映射来上传的。
- 因此抓包之后修改 numbers 变量为一个数组,其中的 7 个变量都是 true。放包之后就能够快速赚钱了,赚够钱后购买得到 flag
{"action":"buy","numbers":[true,true,true,true,true,true,true]}
攻防世界mfw
- 打开后在每个标签中查看
- 查看源代码发现有个跳转到flag的超链接被注释掉了,但是不允许修改,我直接改跳转到contact的超链接为flag
- 但是在flag标签内什么也没有发现
- 在上一张图片中有两个词,git和php,猜测是git源码泄露,用dirsearch跑一跑,真的发现了很多.git文件
用githack去跑,看看能不能下下来一些.git下的源码,发现在.index的开头找到了php源码
其中assert()函数会将括号中的字符当成代码来执行,并返回true或false,strpos()函数会返回字符串第一次出现的位置,如果没有找到则返回False
于是重心就放在file变量中,发现file变量是用我们输入的page变量拼接而成的,而且没有任何的过滤,我们可以在这段输入的字符中插入system函数来执行系统命令
注意到调用file时用的单引号和括号来限制file的范围
于是可以构造url为page=a ') or system("cat templates/flag.php");//
ctfshow.web7
- 考察git代码泄露,直接访问url/.git/index.php
- git源码泄露一般在根目录下/.git/文件夹下找
直接获取-CMS识别平台-云悉指纹识别平台
自行查看
- 看网页页脚、图片、版权信息位置有没有透露信息
- 获得搭建的程序名,并下载获取到源码
云悉指纹识别平台
- 不是百分百可以获取到,自研等都无法获取,因为不是用的开源CMS
- 键入域名
- 但是目前还没有注册能力,库鲁西
备份文件泄露
- 在网站/www/html目录下备份文件会有备份文件泄露风险
- 不只是在/www/html目录下,这是PHP_study搭建的,也可以是其它的搭建网站的目录下打成zip/gz压缩包备份的
- 任意下载,只要没有限制目录跨级就可以
- 有一些可能会限制跳到上级 ../ 的限制
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 h3110w0r1d's Blog!