OWASP 应用程序安全验证标准 ( ASVS ) 第 3 版在第 V11.2 条中声明:
验证每个 HTTP 响应是否包含指定安全字符集的内容类型标头(例如
UTF-8
,,ISO 8859-1
)。
忽视这一要求会有什么威胁,如何利用这一点?
OWASP 应用程序安全验证标准 ( ASVS ) 第 3 版在第 V11.2 条中声明:
验证每个 HTTP 响应是否包含指定安全字符集的内容类型标头(例如
UTF-8
,,ISO 8859-1
)。
忽视这一要求会有什么威胁,如何利用这一点?
减少客户端攻击。
例如:如果 XSS 所在的页面没有提供页面字符集标头,或者任何设置为 UTF-7 编码的浏览器都可以通过以下方式被利用。例如(UTF-7 编码):
+ADw-SCRIPT+AD4-alert('XSS');+ADw-/SCRIPT+AD4-
XSS攻击难以防范
更多信息:带有 utf-7 的 XSS
Leviathan Security 的 Blake Franz 2008 年的论文——http: //www.leviathansecurity.com/white-papers/flirting-with-mime-types——用字符集确定了一些原始问题空间。
一些工具可以正确识别和解释这个问题,例如 Burp Suite Professional -- https://portswigger.net/KnowledgeBase/Issues/Details/00800200_HTMLdoesnotspecifycharset
您将在 OWASP Testing Guides on Stored XSS 中看到对字符集的提及:
这个设计缺陷可以在浏览器 MIME 错误处理攻击中被利用。例如,像 JPG 和 GIF 这样看起来无害的文件可以包含一个 XSS 有效负载,当它们被浏览器加载时会执行该有效负载。当图像的 MIME 类型(例如 image/gif)可以设置为 text/html 时,这是可能的。在这种情况下,客户端浏览器会将文件视为 HTML。
还要考虑 Internet Explorer 不像 Mozilla Firefox 或其他浏览器那样处理 MIME 类型。例如,Internet Explorer 将带有 HTML 内容的 TXT 文件作为 HTML 内容处理。有关 MIME 处理的更多信息,请参阅本章底部的白皮书部分。
更多信息可以在维基百科页面上的字符集嗅探下找到——https: //en.wikipedia.org/wiki/Content_sniffing