0x01 漏洞描述

- HTTP Strict-Transport-Security 缺失 -

Web 服务器对于 HTTP 请求的响应头缺少 Strict-Transport-Security,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。HTTP Strict Transport Security(通常简称为 HSTS)是一个安全功能,它告诉浏览器只能通过 HTTPS 访问当前资源,而不是 HTTP。当 Web 服务器的 HTTP 头中包含 Strict-Transport-Security 时,浏览器将持续使用 HTTPS 来访问 Web 站点,可以用来对抗协议降级攻击和 Cookie 劫持攻击。

Strict-Transport-Security 可选配置的值如下:

1
2
3
strict-transport-security: max-age=<expire-time>
strict-transport-security: max-age=<expire-time>; includeSubDomains
strict-transport-security: max-age=<expire-time>; includeSubDomains; preload

示例:

1
strict-transport-security: max-age=31536000; includeSubDomains; preload

释义:

  • max-age=31536000 设置在浏览器收到这个请求后的 31536000 秒(等价于 1 年)的时间内,凡是访问这个域名下的请求都使用 HTTPS 请求。
  • includeSubDomains 可选,如果这个可选的参数被指定,那么说明此规则也适用于该网站的所有子域名。
  • preload 可选,加入预加载列表。

0x02 漏洞等级

威胁级别 高危 中危 低危

0x03 漏洞验证

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

检测目标网站 HTTP 响应头 Strict-Transport-Security 缺失。

0x04 漏洞修复

  1. 修改网站配置文件,推荐在所有传出请求上发送值为 max-age=31536000; includeSubDomains; preload 的 Strict-Transport-Security 响应头。
  2. Strict-Transport-Security 配置详解:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Strict-Transport-Security