upload-labs MIME绕过 Pass – 02

blog 42 0

进入到第二关之后,我们直接打开源码进行分析,由于我们现在处于学习阶段,我们主要学习做题手法、和解题思路以及方向。

upload-labs MIME绕过 Pass – 02

这里是对MIME进行检查,而文件的MIME是我们可以控制的。而MIME是指多用途互联网邮件扩展类型,是

设定某种扩展名的文件使用那一种程序去打开或者运行,每个文件都有着自己的MIME类型。

常见的MIME类型如下:

超文本标记语言文本 .html text/html
  xml文档 .xml text/xml
  XHTML文档 .xhtml application/xhtml+xml
  普通文本 .txt text/plain
  RTF文本 .rtf application/rtf
  PDF文档 .pdf application/pdf
  Microsoft Word文件 .word application/msword
  PNG图像 .png image/png
  GIF图形 .gif image/gif
  JPEG图形 .jpeg,.jpg image/jpeg
  au声音文件 .au audio/basic
  MIDI音乐文件 mid,.midi audio/midi,audio/x-midi
  RealAudio音乐文件 .ra, .ram audio/x-pn-realaudio
  MPEG文件 .mpg,.mpeg video/mpeg
  AVI文件 .avi video/x-msvideo
  GZIP文件 .gz application/x-gzip
  TAR文件 .tar application/x-tar
  任意的二进制数据 application/octet-stream

那么我们如何去控制文件的MIME呢?还是通过抓包修改的方式,文件的MIME在http头部信息中定义的字段为Content-Type,该字段对应的值就是该文件的MIME。

我们这里直接上传一个shell.php文件,之后使用bp进行抓包。

upload-labs MIME绕过 Pass – 02

可以看到,php文件的MIME为text/php,那么该值是否在文件上传的白名单中呢?

upload-labs MIME绕过 Pass – 02

很明显是不在的,因此页面会输出文件类型不正确,请重新上传。

upload-labs MIME绕过 Pass – 02

那么既然是通过http头部信息判断的,我们将php文件的Content-Type属性修改为图片的MIME可不可以呢?答案是可以的。

upload-labs MIME绕过 Pass – 02

回到页面我们可以看到,该文件已经成功上传,并且可以正常执行。

upload-labs MIME绕过 Pass – 02

发表评论 取消回复
表情 图片 链接 代码

分享