禁止套娃-函数读取
题目界面
就一个简单的页面,查看源代码没有什么东西抓包也没有东西,就只能先扫描一下目录
之后也没有东西,看了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 源码泄露
本文作者:Running_J
本文链接:https://www.cnblogs.com/ArcherCY/p/16825797.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步