即使题目再简单,大佬的思维我还是跟不上哎。。。继续更新sql的第二天
看这个样子就知道是什么了----堆叠注入
老样子,先fuzz一下过滤了哪些关键字。基本如下 from flag handler prepare information_schema performance_schema等。先随便测试一下 吧。
不管数字是多少,只有这一个回显。也没有引号需要闭合
1;show databases;
1;show tables;
flag被过滤了。handler,预编译都被过滤了。。。各种关键字绕过也不行。。。去看了看别人的wp。
他的后端既然能做到数字回显字母不回显,说明有一个 或 结构,而且不直接回显flag,但作为一道题目,from一定是from flag。
所以猜测后端:
select $_POST['query'] || flag from flag
payload: *,1
我是没看懂这个payload(select *,1||flag from Flag)
问了下GPT的解释:这个SQL查询语句的含义是从名为Flag的表中选择所有列,并在结果集中添加一个名为flag的新列。新列的值是1与Flag表中的flag列的值进行逻辑OR操作的结果。在SQL中,逻辑OR操作符用两个竖线符号"||"表示。
上述是非预期解题
第二种:set sql_mode=pipes_as_concat
意思就是将pipes设置成了字符串连接符号
payload:1;set sql_mode=PIPES_AS_CONCAT;select 1
挺抽象,或许也是我菜吧