SSL strip 攻击中实际发生了什么

what actually occurs in SSL strip attack

我正在研究 SSL Strip。我知道攻击者必须是 MITM,这样他才能拦截来自受害者的所有请求并将它们发送给服务器。但是我不明白的一件事是,当攻击者收到来自服务器(https)的响应时,攻击者将来自服务器的响应从 https 修改为 http 并将其发送给受害者。

"modifies the response from the server from https to http" 中实际发生了什么? 攻击者是否创建了一个类似于原始站点但使用 http 而不是 https 的站点?

SSLStrip 是关于拦截初始 HTTP -> HTTPS 重定向。

当用户在浏览器中键入 URL 时,例如 "whosebug.com",浏览器默认使用 HTTP 加载它。该网站随后会发现您正在通过纯文本 HTTP 加载它,因此它会重定向到 HTTPS。

初始重定向可被活跃的 MITM 攻击者拦截。例如,他们可以将初始 HTTP 更改为 HTTPS 重定向以重定向到他们拥有的相似 URL。

Strict-Transport-Security 可以缓解这种攻击。 STS 教导浏览器,"from now on, always access this domain (and maybe subdomains)" as HTTPS。然后浏览器自动通过 HTTPS 加载它并完全跳过 HTTP 请求。

STS 是首次使用时信任的功能。第一次访问网站时,初始 HTTP 到 HTTPS 的重定向仍然会发生,因为浏览器不知道该网站应该始终通过 HTTPS 访问。最后一个问题通过 HSTS 预加载得到缓解,其中域基本上被硬编码到浏览器的源代码中,如 "load by HTTPS first".