Race / smuggling
Race / smuggling biedt twee gespecialiseerde hulpmiddelen voor timinggevoelige HTTP-aanvallen en aanvallen op protocolniveau.
Racecondities
Het tabblad Raceconditie verstuurt meerdere kopieën van een verzoek gelijktijdig naar hetzelfde eindpunt en laat je de antwoorden en timing van de parallelle uitvoeringen vergelijken.
Wanneer je dit gebruikt
- TOCTOU (time-of-check/time-of-use): test of gelijktijdige verzoeken een controle en een bewerking die de toestand wijzigt van elkaar kunnen scheiden.
- Accountmanipulatie: verstuur gelijktijdige saldowijzigingen, kortingsboninwisselingen of bewerkingen met een limiet om dubbele besteding of te vaak inwisselen te testen.
- Stem- of snelheidsbeperkingen omzeilen: controleer of limieten per gebruiker atomair worden afgedwongen.
Een racetest uitvoeren
- Stel het doelverzoek op of stuur het naar het tabblad Raceconditie.
- Stel de waarde voor Gelijktijdigheid in: hoeveel parallelle kopieën worden verstuurd.
- Klik op de knop … verzoeken versturen, die het ingestelde aantal toont. Alle kopieën worden zo gelijktijdig mogelijk verstuurd.
- Bekijk de antwoordtabel: statuscode, body en verstreken tijd voor elke kopie.
- Verschillen tussen antwoorden (verschillende statuscodes, verschillende antwoordbodies, onverwacht succes bij kopieën 2+) wijzen op een racevenster.
HTTP/2-racetests met één pakket
Selecteer H2 één pakket bij Aanvalsmodus wanneer het doel HTTP/2 ondersteunt. HTTP/2 multiplext alle parallelle verzoeken over één verbinding, waardoor netwerkjitter wordt geëlimineerd en gelijktijdige aankomst op de server betrouwbaarder wordt.
HTTP-request smuggling
Het tabblad HTTP-smuggling test hoe een server omgaat met dubbelzinnige Content-Length- en Transfer-Encoding-headers om desynchronisatie tussen frontend en backend te detecteren.
Achtergrond
Wanneer een reverse proxy en een backendserver het oneens zijn over waar een verzoek eindigt en het volgende begint, kan een binnengesmokkeld voorvoegsel uit verzoek A vóór verzoek B worden geplaatst. De impact varieert van cachevergiftiging tot het omzeilen van authenticatie en het injecteren van willekeurige verzoeken.
Desynchronisatievarianten
| Variant | Beschrijving |
|---|---|
| CL.TE | Frontend gebruikt Content-Length; backend gebruikt Transfer-Encoding |
| TE.CL | Frontend gebruikt Transfer-Encoding; backend gebruikt Content-Length |
| TE.TE | Beide gebruiken Transfer-Encoding maar reageren anders op een verhulde header |
Een smugglingprobe uitvoeren
- Selecteer het doeleindpunt in het tabblad HTTP-smuggling.
- Kies de te testen desynchronisatievariant.
- Klik op Smugglingtest uitvoeren. Het hulpmiddel verstuurt het speciaal samengestelde verzoek en meet het antwoord.
- Een time-out of onverwacht antwoord op het tweede verzoek in de reeks wijst op mogelijke desynchronisatie.
- Bevestig dit handmatig voordat je een bevinding maakt. Foutpositieven treden op wanneer netwerkomstandigheden een time-out veroorzaken die niets met de probe te maken heeft.