根据题目提示和页面显示的/?ip=

Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

/?ip=是get传参的表现,跟据题目ping尝试在/?ip=后面加127.0.0.0

Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

有回显,看来方向是对的,接下来用管道符拼接ls尝试

Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

看到了flag.php,直接cat flag,发现没有找到,发现空格被过滤了fxck your space(空格)!

Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

绕过空格之后,又发现符号被过滤了,但是不确定是$还是{}被过滤了
Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

分别进行尝试,发现是{}被过滤了

Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

绕过符号过滤后又发现flag也被过滤了

Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

Buuctf web [GXYCTF2019]Ping Ping Ping-LMLPHP

还有一些本题没有用到的不错的绕过方法

单双引号绕过

单双引号绕过也是一个不错的姿势。使用单双引号进行拼接,比如

ca""t还有fl''ag等。在linux中,读取到没有特使含义的单双引号就会被当作空格处理。

反斜线绕过

大同小异

ca\t fl\ag

$1、$2等和 $@绕过

大概的形式就是l$1s ca$2t fl$@ag等等。

09-12 20:14