文章预览
你注意到了以下HTTP响应中的某些内容吗? HTTP/1.1 200 OK Server: Some Server Content-Type: text/html Content-Length: 1337 Some Page ... 基于这段HTTP响应的小部分内容,可以假设这个web应用 可能容易受到XSS漏洞攻击 。 这怎么可能呢?你注意到什么了吗? 如果你对 Content-Type 头有疑问,那你是对的。这里有一个小小的不完美:这个头 缺少 一个 charset 属性。这听起来不是什么大问题,然而,这篇博文将解释攻击者如何利用这一点,通过 有意识地改变浏览器假设的字符集 ,在网站中注入任意的JavaScript代码。 这篇博文的内容也在 TROOPERS24会议 [1] 上展示过。我们会在录音可用时添加一个链接,并在 X/Twitter [2] 和 Mastodon [3] 上通知你。 字符编码 [4] HTTP响应中的常见 Content-Type 头如下所示: HTTP/1.1 200 OK Server: Some Server Content-Type: text/html; {% mark yellow %}charset=utf-8{% mark %} ... charset
………………………………