600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 文件上传漏洞 — 前端JS绕过 MIME类型绕过

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

时间:2023-05-15 09:43:57

相关推荐

文件上传漏洞 — 前端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检校。

上传允许的后缀名文件

通过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/plaintext/htmlimage/jpegimage/pngaudio/mpegaudio/oggaudio/*video/mp4application/*application/jsonapplication/javascriptapplication/ecmascriptapplication/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即可上传成功。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。