进入题目
一串简短的PHP代码,这里对page这个参数用str_replace函数进行了过滤,str_replace函数的作用是匹配前面一段字符,匹配到的话就替换成后面一段,所以这里的代码意思就是,假如我们传入的page参数包含php://就会被替换成空字符。并且判断page里面文件是否存在,存在则包含文件。
当然这题有多种解法,我这里就讲述三种。
第一种
绕过str_replace函数,对渗透测试有点了解的都知道str_replace这个函数及其不安全,可以利用大小写绕过,双写绕过等,这里我用大小写绕过演示给大家看看。
即可得到flag。
第二种
这里还传入了一个hello,好奇心让我试了试。
我发现这个hello是有回显的,所以说不定这里可以命令执行然后回显到浏览器。
然后我们构造payload,首先要构造hello这个参数我们必须先让我们传进的page参数为真才行。
让page参数用http伪协议访问127.0.0.1这个条件肯定为真
第三种
用御剑扫描后台,会扫到phpmyadmin
试了试弱口令,账号root密码空还真登入进去了
接下来就是写入一句话了,这个大家自行百度了。