攻防世界 ics-05 wp

题目描述:其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统

打开设备维护中心页面上没什么,查看源码发现?page=index
看到这个可能存在文件包含读源码的漏洞
php://filter/read=convert.base64-encode/resource=index.php
使用php协议读取index.php页面的base64格式,解码即可得到源码

攻防世界 ics-05 wp_第1张图片源码比较长,核心部分就是以下这一段
攻防世界 ics-05 wp_第2张图片这里的主要考点就是preg_replace()命令执行漏洞
官方的解释是
mixed preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int KaTeX parse error: Expected 'EOF', got '&' at position 19: …it = -1 [, int &̲count ]] )

搜索 subject 中匹配 pattern 的部分, 如果匹配成功以 replacement 进行替换
但是,
$pattern 存在 /e 模式修正符,允许代码执行
/e 模式修正符,是 preg_replace() 将 $replacement 当做php代码来执行
假设pattern为 /a/e , 与subject为 abd ,pattern就可以和subject里的a进行匹配,而导致replacement可以变成代码进行执行,导致代码执行漏洞

接下来回到题目
先使用XFF=127.0.0.1,即可满足if
接下来就可以穿三个get参,分别对应着preg_replace里三个参数

用system执行phpinfo(),没有问题

攻防世界 ics-05 wp_第3张图片执行system(“ls”)

攻防世界 ics-05 wp_第4张图片接下来使用system(“cd s3chahahaDir && ls”)进入s3chahahaDir(在bp里用%20代替空格),可以看到flag目录
攻防世界 ics-05 wp_第5张图片同样的cd s3chahahaDir/flag && ls,可以看到flag.php
cat s3chahahaDir/flag/flag.php
既可以查看到flag

攻防世界 ics-05 wp_第6张图片

你可能感兴趣的:(攻防世界 ics-05 wp)