Ctfshow web入门-web42

web42

在这里插入图片描述

检查代码,发现代码似乎很简单?只需要输入命令执行,但是实际执行之后的小伙伴会发现如果只是输一个指令,回显都是空白,原因很简单。

在给变量c赋值的语句下面的语句”>/dev/null 2>&1“ ,可以将其理解成将输入的数写入黑洞

2>/dev/null  
意思就是把错误输出到“黑洞”

>/dev/null 2>&1
默认情况是1,也就是等同于1>/dev/null 2>&1。意思就是把标准输出重定向到“黑洞”,还把错误输出2重定向到标准输出1,也就是标准输出和错误输出都进了“黑洞”

在这里插入图片描述

实验结果证明了以上的论述,要想绕过这个“黑洞“,需要往里面传入两个参数,shell会执行第一个参数,将第二个参数带入到黑洞,上图实验最后一条语句也证明了这个论述

所以payload就好构造了:

?c=ls&&ls

因为是url传过去的,所以要记得用url编码,不然没有回显(切记对&&等表示两个参数的分隔符用url编码,不然没有回显)
在这里插入图片描述

命令执行成功,这里对输入的值几乎没有过滤,flag可以用通配符表示

构造payload: ?c=tac fla*&&ls

在这里插入图片描述

命令执行成功,成功获取到flag

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值