少女祈祷中...

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命令执行姿势