当前位置: 首页 > news >正文

WEB安全--WAF的绕过思路

一、前言

        随着攻击方式的层出不穷,市面上的网络waf也不断迭代,以至于使用传统的绕过手段无法起到显著的效果。为了能够达到通用型绕过的目的,我们就不能死磕编码和正则绕过,而是应该从其他方面去寻找对策。
 

二、修改数据包绕过(POST传参)

2.1、解析

        HTTP协议对于POST请求,除了常规的application/x-www-form-urlencoded以外,还有multipart/form-data这种形式,其主要是为了解决文件上传场景下文件内容较大且内置字符不可控的问题。multipart/form-data格式也是可以传递POST参数的。
       
对于Nginx+PHP的架构,Nginx实际上是不负责解析multipart/form-data的body部分的,而是交给PHP来解析,因此WAF所获取的内容就很有可能与后端的PHP获取的内容发生不一致。
 

首先构造一个接收数据的php文件:

然后抓包上传数据,我们将GET请求修改为POST请求后并删掉无用的字段:

发现后端的file_get_contents接收到的是POST的数据形式:

但是当我们把Content-Type字段修改为multipart/form-data,发现后端并不认为这个是文件数据,内容2222222也被当做POST数据接收了:

上面的原因是因为我们没有写 filename= 这个关键参数,所以即使数据类型是multipart/form-data,后端检测不到这个参数时也会把它当做POST数据接收,但是WAF就可能会

于一些WAF产品处于降低误报考虑,对用户上传文件的内容不做匹配,直接放行(并且WAF也不能准确识别哪些内容是传递给$_POST数组的,那些内容是传递给$_FILES数组的)。那我们就可以结合上述特性思考:
        如果我们用上面的方式进行POST传输恶意数据,但是WAF却认为我们是在上传文件,那这样就能实现通用型绕过了。

2.2、00截断

截断filename

绕过失败 :

2.3、双写Content-Disposition

顾名思义

成功绕过

http://www.lryc.cn/news/572161.html

相关文章:

  • Flutter中FutureBuilder和StreamBuilder
  • 对gateway和nocas的理解
  • DeepSeek 助力 Vue3 开发:打造丝滑的日历(Calendar),日历_项目里程碑示例(CalendarView01_22)
  • 局域网即时通讯软件评测:4款支持私有化部署的通讯软件对比
  • 2025 Java EasyExcel 基于Excel模板填充数据 SpringBoot+Mybatis-Flex
  • el-image在表格中显示,弹出的预览图片被遮挡,如何解决
  • 【网络空间安全】数据安全
  • 蜻蜓Q系统的技术演进:从Laravel 6到Laravel 8的升级之路-优雅草卓伊凡
  • 时序数据库概念及IoTDB特性详解
  • 若依导出模板时设置动态excel下拉框(表连接的)
  • 企微CRM系统中的任务分配与效率提升技巧
  • Mac电脑 - Sublim Text 代码编辑器
  • 大数据基础学习指南:从核心概念到技术生态全景
  • 蓝牙物联网多个核心应用场景开发与应用细化分析
  • Vue3中使用 Vue Flow 流程图方法
  • 在 Dify 平台部署一个 知识库问答(KBQA) 工作流
  • 设计模式之五大设计原则(SOLID原则)浅谈
  • 进程间通信2(命名管道)linux
  • 专题:2025游戏科技与市场趋势报告|附130+份报告PDF汇总下载
  • day35-Django(1)
  • FPGA基础 -- Verilog 系统任务与系统函数
  • angular 图斑点击,列表选中并滚动到中间位置
  • 探索算法秘境:量子随机游走算法及其在图论问题中的创新应用
  • Python 自动化运维与DevOps实践
  • JVM(7)——详解标记-整理算法
  • 基于YOLOv10算法的交通信号灯检测与识别
  • RTSP播放器低延迟实践:一次对毫秒级响应的技术探索
  • 从零开始的云计算生活——第二十天,脚踏实地,SSH与Rsync服务
  • ThinkPHP结合使用PHPConsole向Chrome 控制台输出SQL
  • 计算机网络 网络层:数据平面(一)