Sql
Sql注入基本步骤
- 查找注入点
- 判断是字符型还是数字型注入 and 1=1 and 1=2 / 3-1
- 如果是字符型判断他的闭合方式, ‘ “ ‘) “)
- 判断数据列数 group by / order by
- 寻找回显位置
相关命令
database()group_concat()concat()substring(),00,30
报错注入
1 | |
floor报错
| 涉及函数 | 作用 |
|---|---|
| rand() | 随机生成0~1之间的小数 |
| floor() | 小数向下取整数。向上取整数ceiling() |
| concat_ws() | 将括号内数据用第一个字段连接起来 |
| group_by | 分组语句,常用于,结合统计函数,根据一个或多个列对结果集进行分组 |
| as | 别名 |
| count() | 汇总统计数量 |
| limit | 这里用于显示指定行数 |
盲注通常会用到以下几个关键字:
字符串截取类(substr)、条件判断类(if)、语句分割类(空格、/**/)、逻辑运算类(and、or)
字符串截取类
禁用:substr、left、right、mid
绕过: like、rlike、instr
其中like与rlike的区别是 rlike支持正则表达式,而like只支持如%,_等有限的通配符,like可以近似于”=”
语句分割
禁用: 空格、r(%0d)、n(%0a)、t(%09)、/**/
语句之间分割常常使用空格
绕过: %a0( )、%0b(垂直制表符)、%0c(换页符)
逻辑运算
禁用: and、or、=、>、<、regexp
绕过: &&、||、 like、greatest、least
条件判断
禁用: 因为禁用了,,所以if 语句没法使用
exp()函数除了能用在报错注入以外,利用exp在参数大于709时会报错的特性可以用来构造条件判断语句
即如果 (... rlike ...) 中的语句执行匹配后的结果为True,经过减号转换后为 exp(710-1) 后不会溢出;若为false,转换为 exp(710-0) 后则会溢出并报错
Sql
https://lvyzcc.github.io/2024/07/22/Sql/