看到提示意思和代码就是叫我们上传cookie:admin=1,所以直接hackbar上传。
然后看到rasalghul.php直接访问就行
根据代码,我们需要用get的方式上传url这个变量,然后ip这个变量就等于url。但是要注意这里的正则匹配是过滤掉了空格,而绕过空格过滤的方法之一是把空格变成${IFS},然后直接用ls查看一下目录。
而shell_exec()这个函数是:
接受参数$ip,该参数用于保存将要执行的命令。
返回值就是返回已执行的命令,发生错误则返回NULL。
所以构造payload:?url=ls${IFS}
并没有flag这个目录,所以我们思路是可以直接使用cat命令来直接查看flag了,构造payload:?url=cat${IFS}/flag但是发现不行,所以可能是flag被过滤了,这时我们就可以*这个通配符来绕过过滤,构造payload:?url=cat${IFS}/f***
得到flag:NSSCTF{fb65691f-f4c9-404d-9dc7-4677b88b8543}