本文最后更新于521 天前,其中的信息可能已经过时,如有错误请发送邮件到big_fw@foxmail.com


审计代码可以知道要我们传一个cookie,并且admin=1
我们使用hackbar工具

我们的到一个新的网址
我们直接访问

preg_match("/ /", $ip) 会检查 $ip 变量的值中是否存在一个空格。如果存在空格,就会执行die(‘nonono’); 函数将停止脚本执行,并输出消息 ‘nonono’。
shell_exec($ip); 函数通过 shell 命令执行 $ip 变量的值并返回输出。它允许任何人通过 URL 查询参数运行==任意的 shell 命令==。这可能会导致严重的安全问题。
总而言之,就是要传入url的值,并且不能有空格,那我们就用以下任意一个字符进行绕过。

ls与ls /的区别:
如果你只调用ls(没有指定路径),它将列出PHP脚本当前工作目录的内容。当前工作目录是启动PHP脚本时所在的目录,或者是在脚本中通过chdir()函数更改后的目录。
如果你调用ls /(或任何其他路径),它将列出该指定路径下的内容。在这个例子中,ls /会列出根目录(/)下的文件和目录。
所以我们这里用ls /来查看根目录下的文件。
测试发现< <> %20被过滤
?url=ls

总结
rce漏洞
空格绕过