Bypassing SOP with Iframes - 1
Last updated
Last updated
Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
In hierdie uitdaging geskep deur NDevTK en Terjanq moet jy 'n XSS in die gekodeerde
Die hoofprobleem is dat die hoofblad DomPurify gebruik om die data.body
te stuur, so om jou eie html-data na daardie kode te stuur, moet jy bypass e.origin !== window.origin
.
Kom ons kyk na die oplossing wat hulle voorstel.
Wanneer //example.org
in 'n sandboxed iframe ingebed word, sal die bladsy se origin null
wees, d.w.s. window.origin === null
. So net deur die iframe in te bed via <iframe sandbox="allow-scripts" src="https://so-xss.terjanq.me/iframe.php">
kan ons die null
origin force.
As die bladsy ingebed kan word, kan jy daardie beskerming op daardie manier omseil (koekies moet dalk ook op SameSite=None
gestel word).
Die minder bekende feit is dat wanneer die sandbox waarde allow-popups
gestel is, die geopende popup al die sandboxed attributes sal erf tensy allow-popups-to-escape-sandbox
gestel is.
So, om 'n popup van 'n null origin te open, sal window.origin
binne die popup ook null
wees.
Daarom, vir hierdie uitdaging, kan 'n mens 'n iframe skep, 'n popup na die bladsy met die kwesbare XSS-kodehandler (/iframe.php
) oopmaak, aangesien window.origin === e.origin
omdat albei null
is, is dit moontlik om 'n payload te stuur wat die XSS sal benut.
Daardie payload sal die identifier kry en 'n XSS dit terug na die boonste bladsy stuur (die bladsy wat die popup oopgemaak het), wat die ligging na die kwesbare /iframe.php
sal verander. Omdat die identifier bekend is, maak dit nie saak dat die voorwaarde window.origin === e.origin
nie nagekom word nie (onthou, die origin is die popup van die iframe wat origin null
het) omdat data.identifier === identifier
. Dan, die XSS sal weer aktiveer, hierdie keer in die korrekte origin.
Leer & oefen AWS Hacking:HackTricks Opleiding AWS Red Team Expert (ARTE) Leer & oefen GCP Hacking: HackTricks Opleiding GCP Red Team Expert (GRTE)