文件上传检测的基本思路
1: 前台脚本检测扩展名—绕过
原理
当用户在客户端选择文件点击上传的时候,客户端还没有向服务器发送任何消息,就对本地文件进行检测来判断是否是可以上传的类型,这种方式称为前台脚本检测扩展名。
- 1
绕过方法
绕过前台脚本检测扩展名,就是将所要上传文件的扩展名更改为符合脚本检测规则的扩展名,通过BurpSuite工具,截取数据包,并将数据包中文件扩展名更改回原来的,达到绕过的目的。
例如:文件名本来为【evil.jpg】,上传时,用BurpSuite截包后,将数据包中的名字改为【evil.php】(或其它脚本类型)即可。
- 1
- 2
2: Content-Type检测文件类型—绕过
原理
当浏览器在上传文件到服务器的时候,服务器对说上传文件的Content-Type类型进行检测,如果是白名单允许的,则可以正常上传,否则上传失败。
- 1
绕过方法
绕过Content--Type文件类型检测,就是用BurpSuite截取并修改数据包中文件的Content-Type类型(如改为:image/gif),使其符合白名单的规则,达到上传的目的。
- 1
3: 文件系统00截断—绕过
原理
在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束。利用00截断就是利用程序员在写程序时对文件的上传路径过滤不严格,产生0x00上传截断漏洞。
- 1
绕过方法
通过抓包截断将【evil.php.jpg】后面的一个【.】换成【0x00】。在上传的时候,当文件系统读到【0x00】时,会认为文件已经结束,从而将【evil.php.jpg】的内容写入到【evil.php】中,从而达到攻击的目的。
- 1
4: 服务器端扩展名检测黑名单—绕过
原理
当浏览器将文件提交到服务器端的时候,服务器端会根据设定的黑白名单对浏览器提交上来的文件扩展名进行检测,如果上传的文件扩展名不符合黑白名单的限制,则不予上传,否则上传成功。
- 1
绕过方法
将一句话木马的文件名【evil.php】,改成【evil.php.abc】(奇怪的不被解析的后缀名都行)。首先,服务器验证文件扩展名的时候,验证的是【.abc】,只要该扩展名符合服务器端黑白名单规则,即可上传。另外,当在浏览器端访问该文件时,Apache如果解析不了【.abc】扩展名,会向前寻找可解析的扩展名,即【.php】
- 1
5: JS检测上传文件—绕过
原理
上传文件时,对方使用JavaScript语句语法检测上传文件的合法性问题。
- 1
绕过方法
在本地浏览器客户端禁用JS即可。可使用火狐浏览器的NoScript插件、IE中禁用掉JS等方式实现。
- 1
6: 重写解析规则—绕过
原理
上传覆盖.htaccess文件,重写解析规则,将上传的带有脚本马的图片以脚本方式解析。
- 1
绕过方法
在可以上传.htaccess文件时,先上传.htaccess文件,覆盖掉原先的.htaccess文件;再上传【evil.gif】文件。使用如下的.htaccess语句,即可将【evil.gif】文件以php脚本方式解析。
<FilesMatch "evil.gif">
SetHandler application/x-httpd-php
</FilesMatch>
- 1
- 2
- 3
- 4
- 5
7: 其它方式—绕过
原理
部分程序员的思维不严谨,并使用逻辑不完善的上传文件合法性检测手段,导致可以找到方式绕过其检测方式。
- 1
绕过方法
1. 后缀名大小写绕过
用于只将小写的脚本后缀名(如php)过滤掉的场合;
例如:将Burpsuite截获的数据包中的文件名【evil.php】改为【evil.Php】
2. 双写后缀名绕过
用于只将文件后缀名,例如"php"字符串过滤的场合;
例如:上传时将Burpsuite截获的数据包中文件名【evil.php】改为【evil.pphphp】,那么过滤了第一个"php"字符串"后,开头的'p'和结尾的'hp'就组合又形成了【php】。
3. 特殊后缀名绕过
用于检测文件合法性的脚本有问题的场合;
例如:将Burpsuite截获的数据包中【evil.php】名字改为【evil.php6】,或加个空格改为【evil.php 】等。
文件上传检测的基本思路相关推荐
- 探究文件上传安全:upload-labs靶场的绕过技巧
数据来源 本文仅用于信息安全的学习,请遵守相关法律法规,严禁用于非法途径.若观众因此作出任何危害网络安全的行为,后果自负,与本人无关. 文件上传基础 01 什么是文件上传 02 文件上传产生漏洞的原因 ...
- 最新版安全狗(v4.0.2.665) 文件上传 绕过
0x00 前言: 继续上次 bypass 安全狗,这次测试的是 bypass 最新版安全狗来上传 php 一句话 0x01 实验环境: win7 sp1 + phpstudy v8.1(apache ...
- asp 检查黑名单_十九、绕过黑名单检查实现文件上传2
1. 文件上传漏洞简介 通常web站点会有用户注册功能,而当用户登录之后大多数情况下会存在类似头像上传.附件上传之类的功能,这些功能点往往存在上传验证方式不严格的安全缺陷,导致攻击者通过各种手段绕 ...
- nginx 上传文件漏洞_文件上传及解析漏洞
注:本文仅供学习参考 文件上传定义: 文件上传漏洞是指网络攻击者上传了一个可执行的文件到服务器并执行.这里上传的文件可以是木马,病毒,恶意脚本或者WebShell等. 这种攻击方式是最为直接和有效的, ...
- FireEye 红队失窃工具大揭秘之:分析复现 Zoho 任意文件上传漏洞(CVE-2020-8394)
聚焦源代码安全,网罗国内外最新资讯! 前言 最近,全球领先的网络安全公司 FireEye 疑遭某 APT 组织的攻击,其大量政府客户信息遭越权访问,且红队工具被盗.虽然目前尚不清楚这些红队工具将被如 ...
- 渗透测试-文件上传/下载/包含
渗透测试-文件上传/下载/包含 概述 一.常见校验上传文件的方法 客户端校验 服务器端校验 1.校验请求头 content-type字段 2. 正则匹配来判断文件幻数(文件头)内容是否符合要求 3. ...
- 【网络安全】文件上传漏洞 详解
文件上传漏洞 1.什么是文件上传 将客户端数据以文件形式封装,通过网络协议发送到服务器端.在服务器端解析数据,最终在服务端硬盘上作为真实的文件保存. 通常一个文件以HTTP协议进行上传时,将POST请 ...
- WEB安全基础-文件上传
文章目录 文件上传简介 什么是文件上传 什么是文件上传漏洞 文件上传产生漏洞的原因 文件上传检测方式 文件上传漏洞危害 Webshell 常用的一句话木马 制作图片马 构造php一句话木马 下载一个正 ...
- 文件上传漏洞绕过手法
目录 1.文件上传原理 2.文件上传检测方法 3.后端检测绕过 3.1类型检测绕过 3.2文件头检测绕过 3.3 文件内容检测绕过 3.4黑名单检测绕过 3.4.1 对于.htaccess后缀名没有过 ...
最新文章
- html(常用标签)
- win10 安装xilinx 14.7 之后打开new project 奔溃解决方法
- numpy 之 np.diff函数
- .NET Core/Framework 创建委托以大幅度提高反射调用的性能
- RMI强制Full GC每小时运行一次
- 5.6亿人没有存款、人均负债13万,大数据揭示负债累累的年轻人
- Kubernetes(十七) 基于NFS的动态存储申请
- C语言内存的动态分配
- leetcode Database3
- oracle与mysql语法区别_mysql和oracle语法异同
- 电池型号 常见的电池型号有哪些
- OSChina 周日乱弹 ——程序员撩妹必杀。
- happen-before原则与JMM内存模型
- 量化:常见策略指标合集
- JavaScript复习笔记
- javaWEB如何实现一个电影票预定购票系统javaee电影选票选座平台
- Python和C语言哪个更容易学,感觉学了C语言有点难,只学过C语言的大学生很迷茫?
- 小米android的手机根目录,小米手机用re模式进行刷机。把rom放进根目录,根目录是哪里?...
- android 原子文件,Android原子操作
- mysql实体指的是_数据库中,实体是指( )。
热门文章
- 虚拟机VM三种网络连接方式说明
- 数据库为什么使用B+树而不是B树
- MySQL与SQLServer的区别(一千条语句)
- 【转载】Apache Spark Jobs 性能调优(二)
- 挑战练习题2.3动态规划 poj3181 Dollar Dayz 完全背包
- RenderTextureFormat.ShadowMap
- POJ 2112 Optimal Milking(二分图匹配)
- 跨域请求,关于后端session会话丢失的解决办法
- Win32中GDI+应用(三)---Graphics类
- [转] SQL的3种连接查询