XS-Leaks, or Cross-Site Leaks, are a type of security vulnerability that can occur when sensitive data is inadvertently leaked from one website to another. This library provides a comprehensive set of functions and tools to assist researchers in identifying, testing, and exploiting XS-Leaks vulnerabilities.
More informations about XS-Leaks can be found in the XS-Leaks Wiki.
- Error probing (using
onerror
andonload
events andscript
tags) - Network Timing (using
performance.now()
)- Fetch method (using
fetch
API) - Image method (using
img
tag) - Frame method (using
iframe
tag)
- Fetch method (using
- Cache Probing
- Frame Counting
Just include the xsl.js
file in your HTML page.
// Using callback XSL.probeError({ url: "https://example.com", timeout: 1000, timeoutShouldReturn: true, callback: function (result) { console.log(result); } }); // Using promise XSL.probeError({ url: "https://example.com", timeout: 1000, timeoutShouldReturn: true }).then(function (result) { console.log(result); });
Learn more about this method : XS-Leaks Wiki - Error Events.
- Fetch method
// You can with this method specify options like the method, headers, body, etc. // Using callback XSL.fetchTimed({ url: "https://example.com" callback: function (result) { console.log(result); } }); // Using promise XSL.networkTiming({ url: "https://example.com" }).then(function (result) { console.log(result); });
- Image method
// Using callback XSL.imageTimed({ url: "https://example.com", callback: function (result) { console.log(result); } }); // Using promise XSL.imageTimed({ url: "https://example.com" }).then(function (result) { console.log(result); });
- Frame method
// Using callback XSL.frameTimed({ url: "https://example.com", callback: function (result) { console.log(result); } }); // Using promise XSL.frameTimed({ url: "https://example.com" }).then(function (result) { console.log(result); });
Learn more about this method : XS-Leaks Wiki - Network Timing.