前言
持续更新:整理下渗透测试工作中发现过的漏洞(包含漏洞描述、漏洞等级、漏洞验证、修复建议),这里不深究漏洞产生的各种后利用或者绕过方式,漏洞验证过程不局限于文章中的方法,能够证明漏洞存在即可。
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 可选配置的值如下:
strict-transport-security: max-age=<expire-time>
strict-transport-security: max-age=<expire-time>; includeSubDomains
strict-transport-security: max-age=<expire-time>; includeSubDomains; preload
示例:
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