==Ph4nt0m Security Team==
Issue 0x03, Phile #0x04 of 0x07
|=---------------------------------------------------------------------------=|
|=-------------------=[ 突破XSS字符数量限制执行任意JS代码 ]=-----------------=|
|=---------------------------------------------------------------------------=|
|=---------------------------------------------------------------------------=|
|=------------------------=[ By luoluo ]=---------------------------=|
|=----------------------=[ <luoluo#ph4nt0m.org> ]=------------------------=|
|=----------------------=[ <luoluo#80sec.com> ]=------------------------=|
|=---------------------------------------------------------------------------=|
[目录]
1. 综述
2. 突破方法
2.1 利用HTML上下文中其他可以控制的数据
2.2 利用URL中的数据
2.3 JS上下文的利用
2.4 利用浏览器特性在跨域的页面之间传递数据
2.4.1 document.referrer
2.4.2 剪切板clipboardData
2.4.3 窗口名window.name
2.5 以上的方式结合使用
3. 后记
4. 参考
一、综述
有些XSS漏洞由于字符数量有限制而没法有效的利用,只能弹出一个对话框来YY,本文主
要讨论如何突破字符数量的限制进行有效的利用,这里对有效利用的定义是可以不受限制执
行任意JS。对于跨站师们来说,研究极端情况下XSS利用的可能性是一种乐趣;对于产品安全
人员来说,不受限制的利用的可能是提供给开发人员最有力的证据,要求他们重视并修补这些
极端情况下的XSS漏洞。
突破的方法有很多种,但是突破的思想基本都一样,那就是执行可以控制的不受限制的数
据。
二、突破方法
2.1 利用HTML上下文中其他可以控制的数据
如果存在XSS漏洞的页面HTML上下文还有其他可以控制的数据,那么可以通过JS获得该数
据通过eval或者document.write/innerHTML等方式执行该数据,从而达到突破XSS字符数量限
制的目的,下面例子假设div元素的内部数据可以控制,但是该数据已经被HTML编码过: