0x01 漏洞描述

- HTTP X-Content-Type-Options 缺失 -

Web 服务器对于 HTTP 请求的响应头缺少 X-Content-Type-Options,这意味着此网站更易遭受跨站脚本攻击(XSS)。X-Content-Type-Options 响应头相当于一个提示标志,被服务器用来提示客户端一定要遵循在 Content-Type 首部中对 MIME 类型 的设定,而不能对其进行修改,这就禁用了客户端的 MIME 类型嗅探行为。浏览器通常会根据响应头 Content-Type 字段来分辨资源类型,有些资源的 Content-Type 是错的或者未定义,这时浏览器会启用 MIME-sniffing 来猜测该资源的类型并解析执行内容。利用这个特性,攻击者可以让原本应该解析为图片的请求被解析为 JavaScript 代码。

X-Content-Type-Options 可选配置的值如下:

1
X-Content-Type-Options: nosniff

nosniff 只应用于以下两种情况的请求将被阻止:

  • 请求类型是 style 但是 MIME 类型不是 text/css。
  • 请求类型是 script 但是 MIME 类型不是 JavaScript MIME 类型。

0x02 漏洞等级

威胁级别 高危 中危 低危

0x03 漏洞验证

可使用验证工具列举如下:

检测目标网站 HTTP 响应头 X-Content-Type-Options 缺失。

0x04 漏洞修复

  1. 修改网站配置文件,推荐在所有传出请求上发送值为 nosniff 的 X-Content-Type-Options 响应头。
  2. X-Content-Type-Options 配置详解:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/X-Content-Type-Options