【发布时间】:2015-03-31 06:03:55
【问题描述】:
我正在尝试了解如何绕过 HSTS 保护。我读过 LeonardoNve 的工具(https://github.com/LeonardoNve/sslstrip2 和 https://github.com/LeonardoNve/dns2proxy)。但我完全不明白。
如果客户端是第一次请求服务器,它会随时工作,因为 sslstrip 会简单地剥离 Strict-Transport-Security: 头字段。所以我们又回到了原来的 sslstrip 的旧案例中。
如果不是……?怎么了 ?客户端知道它应该只使用 HTTPS 与服务器交互,所以它会自动尝试使用 HTTPS 连接到服务器,不是吗?在那种情况下,MitM 是没用的……>
查看代码,我有点明白 sslstrip2 会更改客户端所需资源的域名,因此客户端不必使用 HSTS,因为这些资源不在同一个域上(是真的吗?) .客户端将发送一个 DNS 请求,dns2proxy 工具将拦截并返回真实域名的 IP 地址。最后,客户端将 HTTP 应该以 HTTPS 方式完成的资源。
示例:从服务器响应中,客户端必须下载 mail.google.com。攻击者将其更改为 gmail.google.com,因此它不是同一个(子)域。然后客户端将对该域进行 DNS 请求,dns2proxy 将使用 mail.google.com 的真实 IP 进行响应。然后,客户端将简单地通过 HTTP 请求此资源。
在那之前我没有得到什么......攻击者如何在从客户端到服务器的连接应该是HTTPS的情况下进行html-strip......?
缺少一块……:s
谢谢
【问题讨论】:
标签: http ssl https man-in-the-middle hsts