# 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