【sql绕过】Bypass waf notepad of def

文章是通过阅读《【独家连载】我的WafBypass之道 (SQL注入篇)》写的阅读笔记。

Waf的类型

  1.云waf
云waf通常是CDN包含的waf,DNS在解析的时候要解析到cdn上面制定的IP上去。在请求URL的时候,数据包就会先经过云waf进行检测,如果通过的话再将数据包流给主机。

  2.主机防护软件
如果主机上面预先安装了这种防护软件,可用于扫描和保护主机,以及监听WEB端口的流量是否有恶意的,所以这种从功能上讲较为全面。

  3.硬件IPS/IDS防护、硬件waf
当向主机请求的时候,会先将流量经过此设备进行流量的清洗和拦截。如果数据包合理的话再将数据包流给主机。


根据WEB容器的特性绕过WAF

a. %绕过

  asp+iis的环境里当我们请求url当中存在的单一的百分号的时候,iis+asp的环境会将其忽略,如果没有特殊要求的waf是不会将其忽略的。所有所以就导致http://www.baidu.com/news.asp?id=1 uni%on s%elect 1,2,3,4在waf的时候会被认为是正常的url(waf匹配到的是uni%on,)而asp+iis的环境会将%忽略就变成了:http://www.baidu.com/news.asp?id=1 union select 1,2,3,4

b.%u绕过

  iis支持unicode的解析,当我们请求的url存在unicode编码的时候就会自动的将unicode编码转换。部分的waf不一定支持unicode编码。所以就致使该方法绕过部分的waf了。

  案例(e的unicode编码是u0065)

    http://www.baidu.com/news.asp?id=1 union su0065lect 1,2,3,4

c.畸形协议&请求绕过

  asp/asp.net 

    form表单其encype属性提交到http协议的concent-type有两种类型,一种是application/x-www-form-urlencoded一种是multipart/form-data.倘若form表单不填写enctype属性的话,那么默认的就是application/x-www-form-urlencoded.

  php+apache

  apache得协议可以自定义,PHP解析器在解析multipart请求得时候,它以逗号作为边界,只取出boundary(边界线)而普通得解释器接收整个字符串,因此如果没有

d.通用绕过

  1.HPP(HTTP Parammter Polllution)参数污染

    a.假设提交的参数为:id=1&id=2&id=3

    b.ASP.NET+IIS会解析为:id=1,2,3

    c.ASP+IIS会解析为:id=1,2,3,

    d.PHP+APACHE会解析为:id=3

   那么我们的bypass payload可以那么写:

  2.双重编码

    a.base64

    b.json

  3.科学记数法

    union

  

原文地址:https://www.cnblogs.com/xishaonian/p/6381043.html