上传漏洞之WAF绕过

admin 2025年6月10日18:14:26评论18 views字数 818阅读2分43秒阅读模式

1 WAF介绍

WAF(Web应用防火墙)是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。

2 WAF拦截的步骤

(1)获取Request Header里的Content-Type值中获取boundary值。

(2)根据第一步的boundary值,解析POST数据,获取文件名。

(3)判断文件名是否在拦截黑名单内/白名单。

3 WAF绕过方式

(1)顺序互换进行绕过

a. 因为WAF可能匹配name在前filename在后,会导致绕过。

上传漏洞之WAF绕过

b. Content-Disposition和Content-Type进行互换,也会导致绕过。

上传漏洞之WAF绕过

(2)字符转换

a. 引号变换

头部字段的值既可以添加单引号也可以添加双引号还可以不加引号,都不会影响上传结果。可以去除掉filename字符串中末尾的引号,也能够正常上传。

b. 大小写变换

对Content-Disposition、name和filename这三个固定的字符串进行大小写转换。

c. 添加换行符

字段值与等号之间可以加入换行符,依然可以正常上传。

d. 分号绕过

文件解析时,可能因为分号解析不到文件名,导致绕过。

上传漏洞之WAF绕过

e. 多个等号

在POST的内容中使用多个等号对文件上传也没有影响。

上传漏洞之WAF绕过

(3)数据重复和截断

a.  filename重复

最终上传成功的文件名是shell.php。但是由于解析文件名时,会解析到第一个。正则默认都会匹配到第一个。

b. 分号截断

若WAF匹配文件名到分号截止,则可以绕过。

上传漏洞之WAF绕过

c. 引号截断

php<5.3 单双引号截断特性。

上传漏洞之WAF绕过

d. 00截断

在url中%00表示ascll码中的0 ,而ascii中0作为特殊字符保留,所以当url中出现%00时就会认为读取已结束。

中泊研安全技术团队通过“人+流程+数据+平台”,构建可持续安全监测和响应能力,为客户提供全方位的安全运营服务解决方案。

邮箱:[email protected]

原文始发于微信公众号(中泊研安全应急响应中心):上传漏洞之WAF绕过

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年6月10日18:14:26
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   上传漏洞之WAF绕过http://cn-sec.com/archives/895212.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息