web46
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/2beb09310e4540819473d93f8c18b631.png)
查看源码,preg_match的过滤又增加了空格和$
本来我们对于空格的绕过是${IFS}
和%0a
,不过preg_match
过滤了美元符,用%09
也可以绕过preg_match
的过滤,
虽然对获取到的值有preg_match
的过滤,但是preg_match
不能过滤这种没有空格的命令,譬如ls,dir,whoami
等等,首先执行,查看当前目录底下有哪些文件
构造payload: ?c=ls&&ls
(&记得编码)
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/5e5412976d34e7763c61f3df45a3e187.png)
成功rce,接下来就是·获取flag,因为源码过滤了cat
指令,但是不影响我们绕过,用tac
尝试一下
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/571833c257f03cf3ef2ff9c7388b8da2.png)