Dubbo는 Alibaba가 제공하는 고성능, 우수한 서비스 오픈소스 프레임워크로, 애플리케이션이 고성능 RPC를 통해 서비스 출력 및 입력 기능을 실현할 수 있도록 하며 Spring 프레임워크와 원활하게 통합될 수 있습니다. 시스템에는 원격 인터페이스 메소드 호출, 지능형 내결함성 및 로드 밸런싱, 자동 등록 및 서비스 검색을 포함한 세 가지 핵심 기능이 있습니다.
2020년 6월 23일 Apache Dubbo는 Apache Dubbo 원격 코드 실행에 대한 위험 공지를 공식 발표했습니다. 취약점 번호는 CVE-2020-1948이며 취약점 수준은 높음입니다. Apache Dubbo는 인터페이스 지향 원격 메소드 호출, 지능형 내결함성 및 로드 밸런싱, 자동 서비스 등록 및 검색이라는 세 가지 핵심 기능을 제공하는 경량의 고성능 오픈 소스 Java RPC 프레임워크입니다. Apache Dubbo Provider에는 역직렬화 취약점이 있습니다. 공격자는 RPC 요청을 통해 인식할 수 없는 서비스 이름이나 메서드 이름 및 일부 악성 매개변수 페이로드를 보낼 수 있으며, 악성 매개변수가 역직렬화되면 원격 코드가 실행될 수 있습니다.
Dubbo 2.7.0 - 2.7.6 Dubbo 2.6.0 - 2.6.7 Dubbo 2.5.x(공식적으로 더 이상 유지 관리되지 않음)
실행 환경과 컴파일 exp 환경 jdk 버전은 모두 8u121입니다. , 테스트 환경을 시작합니다
1 |
|
시작 후 포트 12345
서비스 지문:
1 |
|
여기에서 ping 명령을 실행하여 명령이 실행되는지 확인합니다. 실행되고 새로운 calc.java를 생성합니다.
1 2 3 4 5 6 7 |
|
컴파일 poc
1 |
|
컴파일된 poc(calc.class)를 웹 웹사이트 디렉토리에 넣어 취약한 호스트가 접근할 수 있도록 하세요. marshalsec 프로젝트를 사용하여 ldap 프록시 서비스를 시작하고 marshalsec을 다운로드합니다.
1 |
|
LDAP 프록시 서비스를 시작합니다. 이 명령을 실행하면 ldap 서비스가 포트 8086
1 |
|
테스트를 실행합니다. 여기서 테스트에 사용된 Python 환경은 3.8.0입니다. 먼저 종속성 패키지를 설치하세요
1 |
|
스크립트 내용(Dubbo.py):
1 |
|
스크립트 실행
1 |
|
dnslog 뷰, 성공적으로 요청 수신
ldap 서비스에서도 요청 전달을 볼 수 있습니다Bomb Calculator
1 |
|
https://github.com/apache/dubbo/pull/6374/commits/8fcdca112744d2cb98b349225a4aab365af563de
위 내용은 Apache Dubbo 역직렬화 취약점을 분석하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!