# Cookie Bomb + Onerror XS Leak {{#include ../../banners/hacktricks-training.md}} Hierdie tegniek kombineer: - Cookie bombing: die slagoffer se blaaier met baie/groot cookies vir die teiken-origin volstop sodat opvolgende versoeke bediener-/versoeklimiete tref (request header size, URL size in redirects, ens.). - Error-event oracle: peil 'n cross-origin endpoint met 'n ``` Waarom die popup (window.open)? - Moderne blaaiers blokkeer toenemend third-party cookies. Om 'n top-level window na die target oop te maak maak die cookies first-party, sodat Set-Cookie responses van die target vasbly en die cookie-bomb stap moontlik maak, selfs met third-party cookie-beperkings. Generic probing helper As jy reeds 'n manier het om baie cookies op die target origin (first-party) te stel, kan jy hierdie minimale oracle hergebruik teen enige endpoint waarvan sukses/mislukking tot verskillende netwerk-uitkomste (status/MIME/redirect) lei: ```js function probeError(url) { return new Promise((resolve) => { const s = document.createElement('script'); s.src = url; s.onload = () => resolve(false); // loaded successfully s.onerror = () => resolve(true); // failed (e.g., 4xx/5xx, wrong MIME, blocked) document.head.appendChild(s); }); } ``` Tips om die orakel te bou - Dwing die “positiewe” toestand swaarder te wees: skakel ’n ekstra redirect net wanneer die predikaat waar is, of laat die omleidings-URL onbeperkte gebruikersinvoer weerspieël sodat dit saam met die geraamde voorvoegsel groei. - Blaas koptekste op: herhaal cookie bombing totdat ’n konsekwente fout op die “sware” pad waargeneem word. Bedieners stel gewoonlik ’n grens vir kopteksgrootte en sal vroeër faal wanneer baie cookies teenwoordig is. - Stabiliseer: voer verskeie parallelle cookie-set operasies uit en peil herhaaldelik om die invloed van tyd- en kasgeraas deur gemiddeldes te verminder. Related XS-Search tricks - URL-lengte-gebaseerde orakels (geen cookies nodig) kan gekombineer of in plaas daarvan gebruik word as jy ’n baie lang versoekdoel kan afdwing: {{#ref}} url-max-length-client-side.md {{#endref}} Verdedigingsmaatreëls en verharding - Maak sukses- en mislukking-antwoorde ononderskeibaar: - Vermy voorwaardelike omleidings of groot verskille in responsgrootte tussen toestande. Gee dieselfde status, dieselfde content type, en soortgelyke inhoudslengte terug ongeag die toestand. - Blokkeer kruisdomein subresource-peilings: - SameSite cookies: stel sensitiewe cookies op SameSite=Lax of Strict sodat subresource-versoeke soos