攻防世界---ics-05

Posted 皮皮逗逗逗

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了攻防世界---ics-05相关的知识,希望对你有一定的参考价值。

点进场景看到是很炫酷的页面,题目秒速的是:系统设备维护中心的后门入侵系统,那直奔那里

进来发现什么也没有,到处点一点

在点击时, url发送了变化

出现?page=index 那么联想到可能存在利用文件包含读取网页源码的漏洞

php内置filter伪协议读取文件的代码:
?page=php://filter/read=convert.base64-encode/resource=index.php

访问之后页面出现一大段base64编码

 之后去解码得到(给出关键部分)

 从这里看出我们需要抓包 设置X-Forwarded-For:127.0.0.1


 已经显示welcome My Admin!

 

那么第二步最关键的利用preg_replace()函数的/e漏洞进行代码执行

该函数执行一个正则表达式的搜索和替换

 preg_replace()函数的介绍:

preg_replace($pattern, $replacement, $subject)
作用:搜索subject中匹配pattern的部分, 以replacement的内容进行替换。
$pattern:       要搜索的模式,可以是字符串或一个字符串数组。
$replacement:   用于替换的字符串或字符串数组。
$subject:       要搜索替换的目标字符串或字符串数组。

那么/e漏洞又是什么呢?

preg_replace() 函数还有一个/e模式。

可以参考深入研究 preg_replace /e 模式下的代码漏洞问题_Web安全_心月IT博客

就是说在subject中有要搜索的pattem的内容, 同时将在replacement前加上/e,就可以触发/e漏洞就可以执行replacement中的php代码

那么我们就可以构造payload了

/index.php?pat=/zld/e&rep=system("ls")&sub=zld

先看看有什么文件

 这个文件夹比较有意思

我们进去看看

 看到flag了,应该就在里面了

 我们再深入进去

 胜利在望

我们cat一下flag.php

 成功拿到flag

$flag = 'cyberpeace{ed865f32871e9206d2c5245f25483a07}';

以上是关于攻防世界---ics-05的主要内容,如果未能解决你的问题,请参考以下文章

攻防世界---ics-05

攻防世界 ics-05

攻防世界十七ics-05

XCTF-攻防世界CTF平台-Web类——17ics-05(php://filter 协议preg_replace函数命令执行)

XCTF-攻防世界CTF平台-Web类——17ics-05(php://filter 协议preg_replace函数命令执行)

攻防世界 mfw