文章目录
第一章 服务器端检测–MIME 类型
- 第一章 服务器端检测--MIME 类型
- 第二章代码审计-源代码
- 第三章MIME服务器端绕过案例
- 第一步 上传.jpg文件 上传成功 查看图片
- 第二步 上传.php文件 查看提示错误信息
- 第三步 使用burp抓包 更改type类型
- 第四步 查看上传的是否成功执行
- 第五步 上传一句话木马 蚁剑进行连接
- 免责声明
MIME (Multipurpose Internet Mail Extensions) 是描述消息内容类型的因特网标准。MIME 消息能包含文本、图像、音频、视频以及其他应用程序专用的数据。 【https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types】 常见的MIME 类型如下
文件扩展名Mime-Type.jsapplication/x-javascript.htmltext/html.jpgimage/jpeg.pdfapplication/pdf.pngimage/png在HTTP 协议中,使用Content-Type 字段表示文件的MIME 类型
。当我们上传文件的时候,抓到HTTP 数据包。
在服务器端会检测Content-Type 类型,upload-labs 第二关,经典的代码如下
if (isset($_POST['submit'])) {
if (file_exists($UPLOAD_ADDR)) {
if (($_FILES['upload_file']['type'] == 'image/jpeg') || ($_FILES['upload_file']['type'] == 'image/png') || ($_FILES['upload_file']['type'] == 'image/gif')) {
if (move_uploaded_file($_FILES['upload_file']['tmp_name'], $UPLOAD_ADDR . '/' . $_FILES['upload_file']['name'])) {
$img_path = $UPLOAD_ADDR . $_FILES['upload_file']['name'];
$is_upload = true;
}
} else {
$msg = '文件类型不正确,请重新上传!';
}
} else {
$msg = $UPLOAD_ADDR.'文件夹不存在,请手工创建!';
}
}
由于服务器在检测Content-Type 类型的时候,取得的变量来自于用户,所以可以用Burp 抓包,修改这个字段,使其合法,即可绕过限制上传任意文件。
本文档供学习,请使用者注意使用环境并遵守国家相关法律法规! 由于使用不当造成的后果上传者概不负责!