禁止套娃-函数读取
题目界面

就一个简单的页面,查看源代码没有什么东西抓包也没有东西,就只能先扫描一下目录
之后也没有东西,看了wp得知这个是git源码泄露
使用githack重建工程文件源代码


可以看到这里面很多过滤但是注意到了eval可以执行代码,但是有三层过滤
第一层:禁用了data:// filter:// 等协议,防止读取文件
第二层:网上wp解释: (?R)是引用当前表达式,(?R)? 这里多一个?表示可以有引用,也可以没有。,引用一次正则则变成了[a-z,_]+[a−z,]+((?R)?[a−z,]+((?R)?),可以迭代下去,那么它所匹配的就是print(echo(1))、a(b(c()));类似这种可以括号和字符组成的
第三层:禁用了na info等字符
方法
使用函数可以去读取想要的数据
具体函数参考:https://www.it610.com/article/1292964679802494976.htm
scandir — 列出指定路径中的文件和目录
current — 返回数组中的当前单元
pos — current() 的别名 也可以使用current
localeconv--获取数字格式信息,它返回一个数组,第一个值为'.',后面还有很多值,只是第一个值是点
而current返回数组的当前单元,所以:
print_r(scandir(current(localeconv()))) = print_r(scandir('.'));
执行可以看到出现了数组

之后使用next array_reverse highlight_file或者readfile读取文件

总结
补充
https://www.it610.com/article/1292964679802494976.htm
git泄露
Git 源码泄露
开发人员会使用 git 进行版本控制,对站点自动部署。但如果配置不当,可能会将 .git 文件夹直接部署到线上环境,这就引起了 git 泄露漏洞,我们可以利用这个漏洞直接获得网页源码。
确定是否存在泄漏
想要确定是否存在这个漏洞,可以通过以下方式。首先是看看有没有提示醒目地指出 Git,如果有就考虑存在。如果没有也可以使用 dirsearch 工具扫描后台,如果存在则会扫描出 .git 目录,也可以直接通过网页访问 .git 目录,如果能访问就说明存在。也可以试着访问 .git/head 文件,如果能下载也能推断存在 Git 源码泄露

git泄露以及函数学习
浙公网安备 33010602011771号