
Proof-of-Concept per la vulnerabilità LFI/Path Traversal in Aiohttp =< 3.9.1
Proof-of-Concept per la vulnerabilità LFI/Path Traversal in Aiohttp =< 3.9.1
[!IMPORTANT] Questo script è destinato esclusivamente a scopi educativi.
Qualsiasi uso illegale è severamente proibito.
$ git clone https://github.com/wizarddos/CVE-2024-23334
$ cd CVE-2024-23334
$ python3 exploit.py -u [url] -f [file] -d [static directory]
[!Note] Ricorda di abbinare gli slash nell'url e nella directory static - se digiti
http://127.0.0.1/allora passa la directory senza slash (comestatic) e viceversa (url senza slash e directory con esso)
La vulnerabilità stessa risiede nel modo in cui aiohttp gestisce le richieste per risorse statiche
Se scriviamo codice come questo
app.router.add_routes([
web.static("/static", "static/", follow_symlinks=True)
])
follow_symlinks=True la rende vulnerabile a LFI.
Per utilizzare risorse statiche, è necessario specificare la sua directory radice.
L'opzione follow_symlinks dice a aiohttp di seguire i collegamenti simbolici al di fuori della directory radice, ma non verifica se il collegamento stesso si trova nella directory radice.
Quindi anche se detto "symlink" non è nemmeno un collegamento, aiohttp legge quel file e restituisce il suo valore
Fonte https://github.com/aio-libs/aiohttp/security/advisories/GHSA-5h86-8mv2-jq9f