HTTP Strict-Transport-Security 缺失
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 | strict-transport-security: max-age=<expire-time> |
示例:
1 | strict-transport-security: max-age=31536000; includeSubDomains; preload |
释义:
max-age=31536000
设置在浏览器收到这个请求后的 31536000 秒(等价于 1 年)的时间内,凡是访问这个域名下的请求都使用 HTTPS 请求。includeSubDomains
可选,如果这个可选的参数被指定,那么说明此规则也适用于该网站的所有子域名。preload
可选,加入预加载列表。
0x02 漏洞等级
威胁级别 | 高危 | 中危 | 低危 |
0x03 漏洞验证
可使用验证工具列举如下:
- 在线检测网站:https://securityheaders.com/?q=http://www.luckysec.cn/
- curl 命令工具:curl -I
"http://www.luckysec.cn/"
- 浏览器工具: F12 打开浏览器控制台网络查看网站响应头。
- 网络抓包工具:常用BurpSuite等工具。
检测目标网站 HTTP 响应头 Strict-Transport-Security 缺失。
0x04 漏洞修复
- 修改网站配置文件,推荐在所有传出请求上发送值为
max-age=31536000; includeSubDomains; preload
的 Strict-Transport-Security 响应头。 - Strict-Transport-Security 配置详解:https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Headers/Strict-Transport-Security
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 鸣剑Sec!