CVE-2016-4585 Safari XSS漏洞分析

翻译自: Safari's URL redirection XSS - CVE-2016-4585

URL传递错误有时候会导致安全问题。我一年前报告了这样的漏洞: XSS bug of Safari,这篇文章主要谈谈这个漏洞的细节。

漏洞概要

  • 概述: 经过一个精心制作的重定向URL,可能出现:

    1. HOST header 可控
    2. 域混淆XSS

    如果目标网站满足特定的要求,这两种都会导致信息泄露或欺骗。

  • 影响版本: Safari

  • 报告: 这个漏洞报告在2015年9月报告给 Apple 和 IPA

  • 修复情况: Safari改进了验证机制,现在遇到不可用的重定向URL的时候,会抛出一个错误。

控制Host Header

当一个精心构造的URL被输出在HTTP Reponse中的Location参数中(通常是302或307)时,会出现漏洞。

Paste_Image.png

URL的端口不是数字。Safari会连接到 example.jp:80, 发送一个包含如下header的请求:

Paste_Image.png

不可用的端口被应用到Host Header中。这意味着我们可以控制从某个人的浏览器发送到某些地方的Host Header。但是有两个限制:出现在URL中的字符会被URL编码,只有部分出现在 : 后的字符可以被正常转发。

让我们来研究下如何利用这种浏览器行为。(为了重现漏洞,你需要移除burp之类的浏览器代理,并且使用老版本的Safari)

单引号XSS

有些符号,如'&,是允许出现的,如下图所示。首先我测试了一个简单的XSS,输出在单引号闭合的HTML标签属性中。

CVE-2016-4585 Safari XSS漏洞分析_第1张图片
Paste_Image.png

令人惊讶的是,Safari的XSS Filter在这种情况下仍然有效。当然,在输出在

你可能感兴趣的:(CVE-2016-4585 Safari XSS漏洞分析)