文件上传漏洞 — 前端JS绕过、MIME类型绕过

文件上传漏洞的相关讲解基于upload-labs靶场,搭建教程见文件上传漏洞靶机搭建教程

前端JS绕过

浏览器访问http://127.0.0.1/Pass-01/index.php进入靶机pass01漏洞练习页面:

  • webshell:就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,主要用于网站管理服务器管理权限管理等操作。使用方法简单,只需上传一个代码文件,通过网址访问,便可进行很多日常操作,极大地方便了使用者对网站和服务器的管理。正因如此,也有小部分人将代码修改后当作后门程序使用,以达到控制网站服务器的目的。

解决方法

发现pass01就是典型的前端JS进行的文件检校,所以针对前端的JS绕过方式有二种:

方法一

直接在浏览器中禁用JS脚本,让JS脚本不发挥作用

禁用Js脚本后就可以进行.php的上传操作:

方法二

通过Burp Suit 进行抓包改后缀名,绕过前端的JS检校。

  1. 上传允许的后缀名文件

  1. 通过Burp Suit修改后缀名称

MIME类型绕过

浏览器访问http://127.0.0.1/Pass-02/index.php进入靶机pass02漏洞练习页面:

通过上传shell.php文件发现提示:文件类型不正确,请重新上传!,可以判断该pass是检查的文件的MIME类型。

关于什么是MIME类型,本文提供一个开发者手册地址:MIME 类型 - HTTP | MDN

  • 媒体类型(通常称为 Multipurpose Internet Mail ExtensionsMIME 类型 )是一种标准,用来表示文档、文件或字节流的性质和格式。它在IETF RFC 6838中进行了定义和标准化。

语法

通用结构

type/subtype
  • MIME的组成结构非常简单;由类型与子类型两个字符串中间用'/'分隔而组成。不允许空格存在。type 表示可以被分多个子类的独立类别。subtype 表示细分后的每个类型。

  • MIME类型对大小写不敏感,但是传统写法都是小写。

类型举例

text/plain
text/html
image/jpeg
image/png
audio/mpeg
audio/ogg
audio/*
video/mp4
application/*
application/json
application/javascript
application/ecmascript
application/octet-stream
…

解决方法

方法一:

利用Burp Suit修改成允许的MIME类型进行文件上传

采用image/jpeg、image/png的MIME类型:

上传.php后缀的文件,修改请求包内容内的Content-Type,将application/octet-stream修改为image/png或者image/jpeg即可上传成功。

方法二:

在本地电脑将.php后缀文件修改成.jpg文件

通过Burp Suit修改后缀名称:

上传.jpg后缀的文件,修改请求包内容内的文件名称,将.jpg修改为.php即可上传成功。

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
文件漏洞是一种常见的Web安全漏洞,攻击者通过绕过文件头检测机制,上恶意文件到服务器上,从而执行任意代码或者获取敏感信息。文件绕过是指攻击者通过修改文件的内容或者文件名来欺骗服务器的文件类型检测机制,使得服务器无法正确判断文件的真实类型。 为了绕过文件头检测机制,攻击者可以采取以下几种方法: 1. 修改文件内容:攻击者可以在文件的开头添加一些特殊字符或者修改文件的二进制内容,使得文件头部的标识符不再符合服务器的文件类型检测规则。 2. 修改文件扩展名:攻击者可以将恶意文件的扩展名修改为服务器允许上的合法文件类型的扩展名,从而欺骗服务器认为该文件是合法的。 3. 使用双重扩展名:攻击者可以将恶意文件的扩展名修改为两个或多个扩展名的组合,例如将`.php`文件修改为`.jpg.php`,这样服务器可能只会检测到第一个扩展名,从而误判文件类型。 4. 使用特殊编码:攻击者可以使用特殊编码对文件进行编码,使得文件头部的标识符被隐藏或者混淆,从而绕过文件类型检测。 为了防止文件漏洞文件绕过,开发者可以采取以下几种措施: 1. 文件类型检测:在服务器端对上文件进行类型检测,可以通过检查文件的魔术数字、文件扩展名、MIME类型等方式来判断文件的真实类型。 2. 文件名过滤:对上文件名进行过滤,只允许合法的文件名字符,避免使用特殊字符或者路径分隔符。 3. 文件内容检测:对上文件内容进行检测,可以通过解析文件内容或者使用杀毒软件等方式来检测文件是否包含恶意代码。 4. 文件权限设置:限制上文件的存储路径的访问权限,避免攻击者通过上恶意文件获取服务器的敏感信息或者执行任意代码。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mingzhi61

你的打赏,是我创造最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值