看我如何使用数据格式混淆来绕过WAF进行攻击?

简介: 本文讲的是看我如何使用数据格式混淆来绕过WAF进行攻击?,这个问题目前是没有成功解决,因为解析相关数据类型需要进行准确的流量分析。很多防火墙只是采用了一些很简单的方法对这些数据进行处理。在处理HTTP协议中,常见简单方法如下:
本文讲的是 看我如何使用数据格式混淆来绕过WAF进行攻击?这个问题目前是没有成功解决,因为解析相关数据类型需要进行准确的流量分析。很多防火墙只是采用了一些很简单的方法对这些数据进行处理。在处理HTTP协议中,常见简单方法如下:
1. 使用Content-Type HTTP标头进行检查
2. 使用最适合的数据类型
3. 手动配置每一个数据的数据类型。

上述的第一种方法是确实是很合理的,不过它有很严重的缺点。首先,不是所有的数据字段都会有一个Content-Type信息。举个很简单的例子,比如你使用GET方法发送一个参数:

?jdata={"json":"here"}

其次,攻击者可以修改默认的Content-Type值。所以服务器信任传输进来的数据显然不是一个很好的防御选择。

实际上,大多数的防火墙都会自动选择数据类型,然后采取最适合的数据解析器。这一种方法可以让我们采取不一样的攻击方法来绕过防火墙的防御。为了能够利用成功,攻击者需要像构造json数据那样,构造攻击的payload,就比如我们要利用sql注入漏洞:

?injection={"'union/*":"*/select", ",2,password, ":" FROM users;#"}

上述代码就相当于执行了:

' UNION SELECT 1,2,password,4 FROM users--a-

但是在防御系统的JSON解释器中,这个数据看起来就不太一样:

看我如何使用数据格式混淆来绕过WAF进行攻击?

防火墙会对JSON数据中的每一个键以及对应的数值进行检测。因为这些键名以及键值都不会被检测为攻击,不过他们连接到一起就是攻击代码,由于JSON解释器的存在,导致了我们这些代码进行了组合,然后攻击利用成功。

使用同样的方法,我们可以将我们的payload构造进XML格式中。下面攻击载荷同样展示了sql注入的攻击代码,不过数据格式为XML:

<?xml version="1.0"?><a att1="'union/*" att2="*/select" att3=",username," att4=" FROM user;#">I'm an XML. Trust me!</a>

看我如何使用数据格式混淆来绕过WAF进行攻击?




原文发布时间为:2017年6月2日
本文作者:xnianq
本文来自云栖社区合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。
目录
相关文章
|
7月前
|
存储 安全 网络协议
绕过WAF和多个防护软件提权案例
绕过WAF和多个防护软件提权案例
96 0
|
2月前
|
安全
WAF绕过 -- and判断
WAF绕过 -- and判断
23 0
|
2月前
|
数据库
最简单的WAF绕过方式
最简单的WAF绕过方式
88 0
|
11月前
|
SQL 安全 网络安全
SQL注入-WAF绕过
SQL注入-WAF绕过
|
安全
WAF绕过 -- and判断
WAF绕过 -- and判断
85 0
WAF绕过 -- and判断
|
数据库
最简单的WAF绕过方式
最简单的WAF绕过方式
735 0
最简单的WAF绕过方式
|
数据采集 安全 数据库
某教程学习笔记(一):23、WAF绕过
某教程学习笔记(一):23、WAF绕过
226 0
某教程学习笔记(一):23、WAF绕过
|
程序员 Shell 测试技术
文件上传-PHP异或绕过WAF
文件上传-PHP异或绕过WAF
文件上传-PHP异或绕过WAF
|
SQL 安全 数据库
sqli笔记-基于错误的SQL注入与WAF绕过
正文 测试的是登陆功能,此功能会向数据库发送查询的请求,这里我们仔细来看一下,获取我的数据并通过 POST 请求发送。 工具使用的是Burp Suite,这里拦截了请求并将其发送到repeater:
262 0
sqli笔记-基于错误的SQL注入与WAF绕过