침해사고분석팀ㅣ2022.07.05
보안 동향 ㅣ AstraLocker 랜섬웨어 종료 및 복호화 해제
침해사고분석팀ㅣ2022.07.05
침해사고분석팀ㅣ2022.07.04
침해사고분석팀ㅣ2022.07.04
침해사고분석팀ㅣ2022.07.01
취약점 정보[CVE-2020-10549] rConfig SQL Injection | ||||
작성일 | 2021-04-16 | 조회 | 189 | |
---|---|---|---|---|
rConfig 3.9.4 이하의 버전에서 SQL Injection 취약점이 존재합니다.
rConfig는 PHP 기반의 오픈소스 네트워크 기기 구성 관리 유틸리티로, 예약 관리 작업, 정책 모니터링, 네트워크 장치에 대한 시스템 백업 및 보고 등의 기능을 지원합니다.
해당 취약점은 /compliancepolicies.inc.php 경로의 searchField 파라미터의 유효성 검사가 충분하지 않아 발생합니다.
공격 성공 시, 원격의 공격자는 SQL쿼리를 조작하여 DB에 접근할 수 있습니다.
취약점 설명
NVD - CVE-2020-10546 CVSS v2.0 Severity and Metrics: Base Score: 7.5 HIGH
[그림1. NVD 내역]
취약점 분석
취약점은 /compliancepolicies.inc.php 파일에서 발생합니다.
compliancepolicies.php가 HTTP 요청을 수신할 때 요청을 처리하기 위해 다른 PHP 스크립트compliancepolicies.inc.php를 불러오게 되는데, 요청을 처리할 때 다음과 같은 SQL 구문을 생성하게 됩니다.
WHERE status = 1 AND [searchColumn] [searchOption] [searchField] ...
[searchColumn]은 HTTP 요청의 searchColumn 매개변수 값이며, 동시에 snippets 데이터베이스의 테이블 이름입니다.
[searchOption]은 SQL 연산자 "LIKE", "NOT LIKE", "=", 혹은 빈 문자열 중 하나입니다.
[searchField]는 searchField 매개변수 값에서 파싱됩니다.
compliancepolicies.inc.php는 SQL WHERE절을 구성하기 전에 searchColumn 및 searchField 매개변수를 검증하지 않습니다.
따라서 공격자는 HTTP 요청의 searchColumn 또는 searchField 매개 변수에 임의의 SQL 명령을 포함하여 테이블을 생성, 조회하거나 삭제할 수 있습니다.
기본적으로 rConfig는 사용자가 /compliancepolicies.php에 액세스하기 위한 인증을 필요로 하지만, /compliancepolicies.inc.php에 대한 액세스는 제한하지 않기 때문에, 인증되지 않은 공격자는 /compliancepolicies.inc.php 페이지를 통해 공격을 수행할 수 있습니다.
공격 분석
CVE-2020-10546의 공격 패킷은 다음과 같습니다. [그림2. 공격 패킷]
공격 성공 시, 임의의 코드 실행 및 정보 유출이 발생할 수 있습니다.
취약점 대응 방안
1. 최신 버전 사용 rConfig 3.9.x 버전 패치가 중단되었기 때문에 rConfig v5로 업데이트한다. https://www.rconfig.com/#whyrconfig
2. WINS Sniper 제품군 대응 방안
[5404] rConfig compliancepolicies.inc.php searchField SQL Injection
|
||||
첨부파일 | 첨부파일이 없습니다. | |||
![]() ![]() ![]() |
||||
태그 | CVE-2020-10546 rConfig SQL Injection |