时间:2022-7-4来源:本站原创作者:佚名
网络客服求职招聘微信群 http://www.jpm.cn/article-123830-1.html

来源:同程旅行安全应急响应中心

在实际攻击场景中,攻击者在进行web漏洞攻击时常常会碰到WAF(网站应用级入侵防御系统)的阻拦,为了测试绕过WAF的防御,安全人员也研究了各种各样的姿势。本文就针对基于HTTP协议的WAF绕过思路进行了梳理。

0

WAF简介

Web应用防护系统称为:网站应用级入侵防御系统。英文:WebApplicationFirewall,简称:WAF。利用国际上公认的一种说法:Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

WAF可以算是代理防火墙中的一种,可以拆包解包检查;

本文的WAFbypass指的是针对WAF防护策略的绕过技术原理分析。

1

为什么能绕过WAF

01.鱼(安全)和熊掌(性能)不可兼得;

02.花瓶or摆设(甲方买了只是应付检查,不用或者说是不敢用)

03.WAF本身不能贴合业务(通用性牺牲了某些语言、中间件、数据库的特性)04.确实有BUG;

2

为什么要绕过WAF

WAF能解决所有外部应用安全问题吗?答案肯定是不行的。

WAF更像是兜底设备,应用安全问题不能全部依赖waf去解决,不然waf一旦被突破,那意味着后门大开,黑客可以长驱直入。所以只有对waf进行绕过检测,才能发现到底有没有问题。

3

常规WAF绕过方式

这里以文件上传为例,直观展示:

3.1快速判断文件上传漏洞是否客观存在

(PS:最基础的就是文件上传后,要有明确的返回地址,要不然就算是上传webshell成功了,也不知道去哪里访问连接。)

01.我们直接前端上传正常文件,burp截断数据包后,尝试修改content-type和任意后缀,来判断黑白名单(eg:1.abc,随机后缀传上去了一般就是黑名单限制)

02.随机后缀传不上去一般就是白名单,检查是否是前端JS限制,F12看一下,如果是前端限制,可以直接修改js。

03.非前端白名单限制的话,只能尝试服务器和中间件的解析漏洞了。

3.2判断程序本身限制与WAF限制

01.程序本身黑名单限制:响应通常会有上传文件格式不允许的字样。

02.WAF限制:返回页面通常会是跳转WAF的拦截页面或是该次请求被重置reset无响应包。

3.3常规绕过WAF限制

遇见的常见的WAF,在上传阶段检测的字段通常是:

Content-Disposition:form-data;name="file";filename="1.php"

针对后缀类绕过的方法:构造当前能识别的正常文件的畸形包(.png),然后再改后缀,服务器能解析,但是让WAF不认识。

这些WAF都能在后缀落地的阶段绕过,各种WAF可能对后缀判断的具体的位置不同:

例如某WAF:filename参数去掉引号就可以正常上传,原因是waf未识别到双引号“”内的黑名单文件,但服务器可以忽略进行正常接收解析。

绕过方式

"enter"

换行

filename==="1.jsp"

多等号

%00

文件名截断

1;.jsp

解析绕过

1.jsp

解析绕过

...

...

有些WAF可能会阻止某些路径(upload)下访问脚本文件,可以使用白名单文件目录+脚本访问的方式。

4

基于HTTP协议的绕过方式

4.1HTTP隧道传输/HTTPpipeline

通过使用Connection:keep-alive达到一次传输多个
转载请注明原文网址:http://www.coolofsoul.com/phpys/phpys/24223.html

------分隔线----------------------------