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

本文讲的是看我如何使用数据格式混淆来绕过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解释器中,这个数据看起来就不太一样:

防火墙会对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>

原文发布时间为:2017年6月2日

本文作者:xnianq

本文来自合作伙伴嘶吼,了解相关信息可以关注嘶吼网站。

原文链接

时间: 2024-10-25 13:21:42

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

看我如何利用文件扩展名绕过AppLocker?

本文讲的是看我如何利用文件扩展名绕过AppLocker?,绕过AppLocker的限制通常需要使用Microsoft信任的二进制文件来执行代码或弱路径规则.然而,在系统中,系统已经配置了默认规则,并且允许使用命令提示符和PowerShell来通过使用具有不同文件扩展名的有效载荷来绕过AppLocker. 可以使用Metasploit 的Web delivery模块来托管要使用到的powershell有效载荷,并从目标中检索传入的连接. exploit/multi/script/web_deliv

【转载】接口和抽象类的区别 --相信你看完不会再混淆了

原文地址:http://www.cnblogs.com/huihui-gohay/archive/2009/12/13/1623070.html   我想,对于各位使用面向对象编程语言的程序员来说,"接口"这个名词一定不陌生,但是不知各位有没有这样的疑惑:接口有什么用途?它和抽象类有什么区别?能不能用抽象类代替接口呢?而且,作为程序员,一定经常听到"面向接口编程"这个短语,那么它是什么意思?有什么思想内涵?和面向对象编程是什么关系?本文将一一解答这些疑问.   1.

绕过WAF继续SQL注入常用方法

这篇文章之前的名字叫做:WAF bypass for SQL injection #理论篇,我于6月17日投稿了Freebuf.链接:点击这里 现博客恢复,特发此处. Web Hacker总是生存在与WAF的不断抗争之中的,厂商不断过滤,Hacker不断绕过.WAF bypass是一个永恒的话题,不少基友也总结了很多奇技怪招.那今天我在这里做个小小的扫盲吧.先来说说WAF bypass是啥. WAF呢,简单说,它是一个Web应用程序防火墙,其功能呢是用于过滤某些恶意请求与某些关键字.WAF仅仅是

见招拆招:绕过WAF继续SQL注入常用方法

这篇文章之前的名字叫做:WAF bypass for SQL injection #理论篇,我于6月17日投稿了Freebuf.链接:点击这里 现博客恢复,特发此处. Web Hacker总是生存在与WAF的不断抗争之中的,厂商不断过滤,Hacker不断绕过.WAF bypass是一个永恒的话题,不少基友也总结了很多奇技怪招.那今天我在这里做个小小的扫盲吧.先来说说WAF bypass是啥. WAF呢,简单说,它是一个Web应用程序防火墙,其功能呢是用于过滤某些恶意请求与某些关键字.WAF仅仅是

SQL注入防御与绕过的几种姿势

前言 本文章主要以后端PHP和MySQL数据库为例,参考了多篇文章后的集合性文章,欢迎大家提出个人见解,互促成长. 一. PHP几种防御姿势 1. 关闭错误提示 说明: PHP配置文件php.ini中的display_errors=Off,这样就关闭了错误提示. 2. 魔术引号 说明: 当php.ini里的magic_quotes_gpc=On时.提交的变量中所有的单引号(').双引号(").反斜线(\)与 NUL(NULL 字符)会自动转为含有反斜线的转义字符. 魔术引号(Magic Quot

看恶意软件Nitol如何使用新技术逃避沙盒检测

本文讲的是看恶意软件Nitol如何使用新技术逃避沙盒检测,安全人员最近观察到,Nitol僵尸网络在利用基于宏的恶意文档发动分布式攻击时,使用了新的逃避技术. 恶意软件作者想尽各种办法以躲开沙盒检测的事情并不新鲜,但此次Nitol僵尸网络使用的技术,非常新奇和聪明.它们使用了宏编码的混淆技术和多阶段攻击方法论,以确保终端设备被入侵. 据研究人员分析,Nitol的这种基于宏的恶意文档发动的分布式攻击,加上了口令保护,可以完全绕过沙盒.因为,键入口令的过程比较复杂且需要用户的介入,而自动分析技术很难模

android代码混淆

proguard 原理 Java代码编译成二进制class 文件,这个class 文件也可以反编译成源代码 ,除了注释外,原来的code 基本都可以看到.为了防止重要code 被泄露,我们往往需要混淆(Obfuscation code , 也就是把方法,字段,包和类这些java 元素的名称改成无意义的名称,这样代码结构没有变化,还可以运行,但是想弄懂代码的架构却很难. proguard 就是这样的混淆工具,它可以分析一组class 的结构,根据用户的配置,然后把这些class 文件的可以混淆ja

waf的使用必看

什么是waf? 如何打造一款可靠的WAF(Web应用防火墙)? WAF攻防实战 如何正确的使用阿里云盾网站安全防御(WAF) 当WEB应用越来越为丰富的同时,WEB 服务器以其强大的计算能力.处理性能及蕴含的较高价值逐渐成为主要攻击目标.SQL注入.网页篡改.网页挂马等安全事件,频繁发生. 这么重要的工具使用,为此无收集了网上的一些博客.希望能帮助到大家. 什么是waf Web应用防护系统(也称:网站应用级入侵防御系统.英文:Web Application Firewall,简称: WAF).利

APP加固新方向--混淆和瘦身

近些年来移动APP数量呈现爆炸式的增长,黑产也从原来的PC端转移到了移动端,造成数据泄漏.源码被盗.APP被山寨.破解后注入病毒或广告现象让用户和生产高质量的程序员苦不堪言,APP加固意义愈发重大. 传统加固和脱壳技术的发展经过了三代的发展和升级,时至今日,传统加固面临到挑战,如容易被脱壳,脱壳类教程非常多,通用脱壳机可轻易脱大部分壳. 加固新方向,混淆和瘦身吸引了人们的眼球.代码混淆技术是对抗逆向攻击最有效的方式之一.此外越来越多的新特性正在啃蚀着大型APP的用户体验,APP瘦身减肥也成了亟待