WEB漏洞-文件上传之WAF绕过及安全修复

#上传参数解析:

Content-disposition:一般不可更改

Name:表单参数值,不能更改(更改需要达到统一)

Filename:文件名,可以更改

Content-type:文件MIME,视情况更改

#常见绕过方法:

数据溢出-防匹配(xxx...)---垃圾数据溢出(容易将服务器弄崩溃)

Name前加“;”

符号变异-防匹配(‘ “ ;)

符号替换、去掉尾、去掉符号、双写/多写符号、、、、、

注:将图中单个双引号替换为单个单引号,甚至去掉符号,都可以实现绕过的功能。但将前面的引号去掉,还是会被拦截---跟安全软件自身的匹配规则有关。

或者根据前面的测试,将x.php写到引号外

;-----代表一个语句的结束

“x.jpg;.php”----安全软件会当成x.jpg文件,但数据包又会解析成为一个php文件

数据截断-防匹配(%00 ; 换行)

如果写:filename=”a.php%00.jpg”----可以绕过安全软件成功上次,但数据包会解析成jpg文件,无法当成php后门。

换行---换行符(“\n”)或者在数据包中直接回车(属于将数据分块传输---但有限制条件)

数据重复-防匹配(参数多次)

递归循环(验证的次数)

白名单技术-----将x.php当成正常数据(重复数据)

“/”也可作为绕过条件

Upload_fuzz 测试

链接地址:

GitHub - fuzzdb-project/fuzzdb: Dictionary of attack patterns and primitives for black-box application fault injection and resource discovery.

GitHub - TheKingOfDuck/fuzzDicts: Web Pentesting Fuzz 字典,一个就够了。

#文件上传安全修复方案

后端验证:采用服务端验证模式

后缀检测:基于黑名单,白名单过滤

MIME检测:基于上传自带类型检测

内容检测:文件头,完整性检测

利用自带的函数:(upload中许多的过滤函数)

自定义函数过滤:黑白名单自定义、限定文件类型

WAF防护产品:宝塔、云盾、安全公司产品。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/610836.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

4.11Qt

完善网络聊天室客户端实现 工程文件 QT core gui network 头文件 #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QTcpSocket> #include<QMessageBox>QT_BEGIN_NAMESPACE namespace Ui { class Widget; } QT_END_NAMESPACEcl…

Linux 函数学习 poll

1、Linux poll 函数 int poll(struct pollfd *fds, nfds_t nfds, int timeout); fds&#xff1a; 需要轮询的fd集合 nfds&#xff1a;需要轮询的fds数量 timeout&#xff1a;超时时间 返回值&#xff1a;0 超时&#xff0c;<0 发生异常&#xff0c;> 0 存在数据变化 …

ETL中如何运用好MQ消息集成

一、ETL的主要作用 ETL&#xff08;Extract, Transform, Load&#xff09;是数据仓库中的关键环节&#xff0c;其主要作用是将数据从源系统中抽取出来&#xff0c;经过转换和清洗后加载到数据仓库中。具体而言&#xff1a; Extract&#xff08;抽取&#xff09;&#xff1a;从…

JS-28-AJAX

一、AJAX的定义 AJAX不是JavaScript的规范&#xff0c;它只是一个哥们“发明”的缩写&#xff1a;Asynchronous JavaScript and XML&#xff0c;意思就是用JavaScript执行异步网络请求。 如果仔细观察一个Form的提交&#xff0c;你就会发现&#xff0c;一旦用户点击“Submit”…

[BT]BUUCTF刷题第14天(4.10)

第14天&#xff08;共5题&#xff09; Web [BJDCTF2020]ZJCTF&#xff0c;不过如此 打开网站直接显示源代码&#xff1a; <?php error_reporting(0); //关闭报错 $text $_GET["text"]; $file $_GET["file"]; if(isset($text)&&(file…

计算机网络 Telnet远程访问交换机和Console终端连接交换机

一、实验要求和内容 1、配置交换机进入特权模式密文密码为“abcd两位班内学号”&#xff0c;远程登陆密码为“123456” 2、验证PC0通过远程登陆到交换机上&#xff0c;看是否可以进去特权模式 二、实验步骤 1、将一台还没配置的新交换机&#xff0c;利用console线连接设备的…

R语言ggplot2绘图学习笔记(基础知识大全)

R语言ggplot2绘图入门笔记 今天分享的内容是在R语言中利用ggplot2进行可视化的入门笔记&#xff0c;适用于初学者了解ggplot2绘图系统。干货满满&#xff0c;建议收藏&#xff01; 首先安装以下R包&#xff1a; install.packages(c("tidyverse", "colorspace&qu…

Python 全栈体系【四阶】(二十三)

第五章 深度学习 三、计算机视觉基本理论 1. 计算机视觉概览 1.1 什么是计算机视觉 计算机视觉在广义上是和图像相关的技术总称。包括图像的采集获取&#xff0c;图像的压缩编码&#xff0c;图像的存储和传输&#xff0c;图像的合成&#xff0c;三维图像重建&#xff0c;图像…

Java快速入门系列-9(Spring框架与Spring Boot —— 深度探索及实践指南)

第九章:Spring框架与Spring Boot —— 深度探索及实践指南 9.1 Spring框架概述9.2 Spring IoC容器9.3 Spring AOP9.4 Spring MVC9.5 Spring Data JPA/Hibernate9.6 Spring Boot快速入门与核心特性9.7 Spring Boot的自动配置与启动流程详解9.8 创建RESTful服务与数据库交互实践…

学习云计算HCIE选择誉天有什么优势?

誉天云计算课程优势实战性强 课程注重实践操作&#xff0c;通过实际案例和实验操作&#xff0c;让学员深入了解云计算的应用场景和实际操作技能。课程内容全面 涵盖所有云计算涉及的IT基础知识、服务器、存储、网络等方面的基础知识&#xff0c;开源操作系统Linux&#xff0c;开…

12-pyspark的RDD算子注意事项总结

目录 相近算子异同总结相近变换算子异同foreach和foreachPartitionfold和reducecoalesce和repatition 相近动作算子异同cache和persist 算子注意事项需要注意的变换算子需要注意的动作算子 PySpark实战笔记系列第三篇 10-用PySpark建立第一个Spark RDD(PySpark实战笔记系列第…

学习R语言第二天

R语言可以做什么 1.数据分析 R语言如何使用 1. 请看我的操作方式 2. 如何获取当前路径 -- 获取当前路径 > getwd() [1] "E:/R/RWorkSpace/day01" -- 修改当前路径 > setwd(dir "E:/R") > getwd() [1] "E:/R" 3.查看当下数据值的信…