当前位置: 首页 > 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.lqws.cn/news/442171.html

相关文章:

  • Singularity 安装
  • 浏览器标题闪烁功能
  • python形成性考核管理系统
  • 2023年蓝桥杯青少第十四届蓝桥杯Scratch省赛中级组真题——小狗避障
  • webpack和vite对比解析(AI)
  • OpenCV 图像直方图
  • 中泰制造企业组网新方案:中-泰企业国际组网专线破解泰国工厂访问国内 OA/ERP 卡顿难题
  • 【世纪龙科技】智能网联汽车自动驾驶虚拟实训软件
  • 【鸿蒙HarmonyOS Next App实战开发】​​​​ArkUI纯色图生成器
  • Linux中Ansible常用模块
  • 【油藏地球物理正演软件ColchisFM】为什么经常用90度相移处理代替反演使用
  • PostgreSQL的扩展dict_int
  • 【AI作画】第2章comfy ui的一般输入节点,文本框的类型和输入形式
  • Postman 的 Jenkins 管理 - 自动构建
  • 通俗解释:编码器与解码器
  • 系统性能优化-3 内存池
  • uni-app项目实战笔记15--使用uni-popup实现弹出层和uni-rate实现评分效果
  • 【python】多次重试调用ai大模型
  • FPGA基础 -- Verilog 命名事件
  • Cursor Pro取消500次请求限制,无限用的体验更好了吗?
  • 【vim】通过vim编辑器打开、修改、退出配置文件
  • 新生活的开启:从 Trae AI 离开后的三个月
  • 【研发工具】.Net创建多项目模板(Visual Studio)
  • 轻量化社交管理方案:Skout与云手机的巧妙搭配
  • 暑期前端训练day1
  • SpringBoot扩展——应用Web Service!
  • 【 感知集群】大规模分布式基础设施的AI赋能蓝图
  • 深度学习之目标检测YOLO简介和YOLO v1模型算法流程详解说明(超详细理论篇)
  • Redis
  • 动态规划算法思路详解