
이 스크립트는 Ambionics Security의 블로그(https://www.ambionics.io/blog/iconv-cve-2024-2961-p1)에 자세히 설명된 대로 iconv 라이브러리의 파일 읽기 취약점을 악용하기 위한 개념 증명(PoC)을 보여줍니다.
이 스크립트는 CVE-2024-2961에 설명된 대로 iconv 라이브러리가 문자 인코딩 변환을 잘못 처리할 때 해당 취약점을 악용하는 방법을 보여줍니다. PHP 필터 체인과 결함이 있는 인코딩 처리를 이용하여 공격자가 서버에서 임의의 파일을 읽을 수 있게 합니다.
이 스크립트는 조작된 페이로드를 업로드하고 결과 파일을 검색한 다음 그 내용을 표시하는 과정을 자동화합니다. 다음 문서에 자세히 설명된 연구를 기반으로 합니다: Iconv CVE-2024-2961: 문자 인코딩 변환 악용.
이 스크립트는 다음 단계를 수행합니다:
페이로드 생성
서버의 모든 파일을 읽기 위해 iconv 인코딩 변환을 활용하는 PHP 필터 체인 페이로드를 생성합니다. 이 페이로드는 일반적인 제한을 우회하여 /etc/passwd 또는 기타 민감한 파일에 접근할 수 있도록 설계되었습니다.
파일 업로드
대상 서버의 admin-ajax.php 엔드포인트에 이미지 업로드를 가장하는 POST 요청을 전송합니다. 페이로드는 요청 내에 숨겨져 있어 서버가 이를 정상적인 파일인 것처럼 처리합니다.
파일 다운로드
페이로드를 업로드한 후, 스크립트는 대상 파일의 내용을 포함하는 파일을 다운로드합니다. 마지막으로 이러한 내용을 추출하여 표시합니다.
requests 라이브러리 (pip install requests로 설치)iconv와 PHP가 실행되는 취약한 서버.저장소를 클론하거나 스크립트를 다운로드하세요:
git clone https://github.com/kyotozx/CVE-2024-2961-Remote-File-Read.git
cd CVE-2024-2961-Remote-File-Read
스크립트를 실행하세요:
python3 lfi.py
프롬프트에 따라 진행하세요:
/etc/passwd).1).스크립트가 수행하는 작업:
Remote File Read Exploitation - CVE-2024-2961
Enter the path of the file you want to read (e.g., /etc/passwd): /etc/passwd
Enter a numeric ID for the upload (e.g., 1): 1
File uploaded successfully: http://blog.bigbang.htb/wp-content/uploads/2025/01/1-50.png
File content:
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
...
이 스크립트는 교육 및 승인된 테스트 목적으로만 사용됩니다. 명시적 허가 없이 시스템에 사용하지 마세요.