FK RCE
根据提示try /?text = 123
发现他是根据你输入的text来回显的内容
?
发现过滤了大量sql注入的语法,猜想是sql注入
陆续尝试了堆注、盲注、报错注入都不行
md,sqlmap -level5都爆不出来
?
开始思考是不是方向有问题,用户输入的text经尝试可以输入很长,一个数据库怎么可能有这么“周到”呢
猜想估计是后端收到text然后用一个脚本将其转义成这种逆天的格式
尝试各种shell命令执行姿势,同时绕过正则
发现123'
会报错,但是123''
不会,推测单引号闭合
构造 123’$(ls)’123
haha
除了直接在浏览器上看之外,这个是出网的可以直接curl到服务器上看
123’$(cat /f*)’123
得到flag
耶
反思:
1,一种方法不通,尝试多种方法打
2,可以使用脚本来fuzz,hurrison推荐seclists
https://github.com/danielmiessler/SecLists
3,甚至还加了一行虚构的header来诱使你打express,只是做的时候没发现这个坑
4,多多学习 CTF 常见的shell命令执行姿势