当前位置:网站首页>攻防世界——mfw
攻防世界——mfw
2022-08-08 07:53:00 【隐身的菜鸟】
考察点:git漏洞,代码审计
当前大量开发人员使用git进行版本控制,对站点自动部署。如果配置不当,可能会将.git文件夹直接部署到线上环境。这就引起了git泄露漏洞。
危害
攻击者可以利用该漏洞下载git文件夹里的所有内容。如果文件夹内有敏感信息比如站点源码、数据库账户密码等,攻击者可能直接控制服务器。


发现有Git,可能是Git泄露,直接/.git

确实存在git泄露那我们使用GitHack还原
工具下载(linux): git clone https://github.com/lijIEjIE/GitHack.git

在templates目录下发现了flag.php,在index.php中发现关键代码

strpos()函数查找".."在$file中第一次出现的位置。如果没有找到则返回false
file_exists()函数检查$file是否存在
assert()函数会将括号中的字符当成代码来执行,并返回true或false
发现一个assert()函数,想到估计是代码执行漏洞,而$page没有任何的控制直接拼接,则利用assert()函数执行cat ./templates/flag.php来获得flag,那么要破坏原来的assert结构,才能使得我们目标才能达成。
发现file变量是用我们输入的page变量拼接而成的,而且没有任何的过滤,我们可以在这段输入的字符中插入system函数来执行系统命令
注意到调用file时用的单引号和括号来限制file的范围
那么我们构造如下payload:
?page=') or system('cat ./templates/flag.php');//被传入之后变成:
$file="templates/') or system('cat ./templates/flag.php');//.php"strpos()返回false,再利用or让其执行system函数,再用" // "将后面的语句注释掉
assert("strpos('template/') or system('cat ./template/flag.php');//.php, '..') === false")下划线内容被注释掉了,所以真正执行了以下语句
strpos('template/') or system('cat ./template/flag.php');
边栏推荐
猜你喜欢
随机推荐
EasyExcel-(1)使用篇
论文翻译:《DeepTorrent:一种基于深度学习的方法,用于预测DNA N4-甲基环肽位点》
under项目under项目
djanjo fourth training
微软 .NET Core 3.1 年底将结束支持,请升级到.NET 6
VSCode代码格式化快捷键及保存时自动格式化
剪切字符串函数
WinForm(四)一种实现登录的方式
信息学奥赛一本通 1923:【03NOIP普及组】数字游戏 | 洛谷 P1043 [NOIP2003 普及组] 数字游戏
数据治理(三):数据质量管理
笔记2022
蓝牙5.2新特性 - LEPC简介
HTTS 为什么更安全?
使用Jlink RTT工具打印日志
【优化调度】基于粒子群实现并网模型下微电网的经济调度优化附matlab代码
jupyter notebook处理文件导致IOPub data rate exceeded
论文解读:《多层肽 - 蛋白质相互作用预测的深度学习框架》
C语言——按照指定分割符分割字符串
音视频入门知识-- --相关名词、术语、概念
XXL-JOB入门教学









