申请靶场环境后
点开题目
一段奇怪的PHP代码
因为我自己电脑重装了win10系统,php+apache+mysql的环境本地主机觉得没必要弄了,于是我们用在线的PHP编码(百度一下到处都是)
复制进去以";"来排个格式
运行下,报错。
看看源码,"$_" "$__" "$___" 这三个是变量名,我们用echo输出下内容
连在一起了,但是可以确定
$_ => 1
$__ => _GET
$___ => _POST
然后观察最后一行代码,把我们变量给用值替换进去
${_GET}[!1](${_POST}[1]);
把多余的{}去掉 [!1]也就是[0],整理下代码是这样的
$_GET[0]($_POST[1]);
和一句话的$_POST[1]传参差不多了,那么$_GET[0]就是我们的函数名了
根据"b.php源码"提示去b.php目录下
用hackbar传GET和POST请求
但是并没有返回phpinfo的信息。
这里又百度了下,学习到了新的知识点assert与eval的区别
我们改成0=assert
phpinfo显现出来了,用菜刀连接下
将key提交上去,正确。