hacktricks/pentesting-web/http-connection-request-smuggling.md

4 KiB

HTTP Connection Request Smuggling

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Ondersteun HackTricks
{% endhint %}

Dit is 'n opsomming van die pos https://portswigger.net/research/browser-powered-desync-attacks

Verbindingstoestand Aanvalle

Eerste-aanvraag Validasie

Wanneer versoeke gerouteer word, mag omgekeerde proxies afhanklik wees van die Host header om die bestemming agterkant bediener te bepaal, dikwels staatmakend op 'n witlys van gasheers wat toegang toegelaat word. Daar bestaan egter 'n kwesbaarheid in sommige proxies waar die witlys slegs op die aanvanklike versoek in 'n verbinding afgedwing word. Gevolglik kan aanvallers dit benut deur eers 'n versoek na 'n toegelate gasheer te maak en dan 'n interne webwerf deur dieselfde verbinding aan te vra:

GET / HTTP/1.1
Host: [allowed-external-host]

GET / HTTP/1.1
Host: [internal-host]

Eerste-versoek Routering

In sommige konfigurasies kan 'n voorste bediener die Host-kop van die eerste versoek gebruik om die agterkant routering vir daardie versoek te bepaal, en dan volhoubaar alle daaropvolgende versoeke van dieselfde kliëntverbinding na dieselfde agterkantverbinding te router. Dit kan soos volg gedemonstreer word:

GET / HTTP/1.1
Host: example.com

POST /pwreset HTTP/1.1
Host: psres.net

Hierdie probleem kan potensieel gekombineer word met Host header attacks, soos wagwoordherstel vergiftiging of web cache poisoning, om ander kwesbaarhede te benut of ongeoorloofde toegang tot addisionele virtuele gasheer te verkry.

{% hint style="info" %} Om hierdie kwesbaarhede te identifiseer, kan die 'connection-state probe' funksie in HTTP Request Smuggler gebruik word. {% endhint %}

{% hint style="success" %} Leer & oefen AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Leer & oefen GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}