Apache-Solr-RCE-via-Velocity-template
참고 링크
취약점 발생 원인:
- 공격자가 Solr 콘솔에 직접 접근할 수 있는 경우, /노드명/config 형식의 POST 요청을 보내 해당 노드의 구성 파일을 변경할 수 있습니다.
- Apache Solr는 기본적으로 VelocityResponseWriter 플러그인을 통합합니다. 해당 플러그인의 초기화 매개변수 중 params.resource.loader.enabled 옵션은 매개변수 리소스 로더가 Solr 요청 매개변수에서 템플릿을 지정하도록 허용할지 여부를 제어하며, 기본값은 false입니다. params.resource.loader.enabled를 true로 설정하면 사용자가 요청 매개변수를 통해 관련 리소스의 로드를 지정할 수 있습니다. 즉, 공격자는 위협적인 공격 요청을 구성하여 서버에서 명령을 실행할 수 있습니다.
취약점 재현: 재발 취약점
방법 1: 수동 점검
http://x.x.x.x:8983/solr/#/ 에 접속하여 메인 화면으로 이동한 뒤, 왼쪽의 Core Selector를 클릭하여 컬렉션 이름을 확인합니다.

다음 두 개의 payload를 사용합니다.
-
컬렉션 설정 변경

-
명령 실행
명령 실행 성공!
방법 2: 스크립트를 사용한 점검


취약점 수정 권장 사항:
- 네트워크 설정에서 신뢰할 수 있는 트래픽만 Solr와 통신할 수 있도록 허용하는 것이 좋습니다.
신뢰할 수 있는 트래픽만 Solr와 통신할 수 있도록 네트워크 설정을 구성하는 것이 좋습니다.
- params.resource.loader.enabled를 false로 지정한 다음, 구성 파일을 읽기 전용으로 설정합니다.
params.resource.loader.enabled를 false로 지정한 후 구성 파일을 읽기 전용으로 설정합니다.
기본적으로 params.resource.loader.enabled는 false이며 구성 파일이 없습니다. 해당 값을 변경하거나 강제로 수정하려면 구성 파일이 필요합니다.
기본적으로 params.resource.loader.enabled는 false이며 구성 파일이 없습니다. 값을 변경하거나 강제로 수정하려면 파일을 구성해야 합니다.
기본적으로 node의 구성 파일 configoverlay.json은 읽기/쓰기 권한입니다.
기본적으로 node 구성 파일 configoverlay.json은 읽기/쓰기 권한 구성 파일입니다.
구성 파일 경로: (실제 상황에 따라 다름)
경로: (실제 상황에 따라 다름)
./example/example-DIH/solr/db/conf/configoverlay.json:
./example/example-DIH/solr/mail/conf/configoverlay.json:
./example/example-DIH/solr/solr/conf/configoverlay.json:
모든 configoverlay.json의 params.resource.loader.enabled를 false로 설정합니다. configoverlay.json이 없다면 수동으로 생성한 후 권한을 읽기 전용으로 설정하는 것이 좋습니다.
configoverlay.json의 모든 params.resource.loader.enabled를 false로 설정합니다. configoverlay.json이 없는 경우 수동으로 생성한 후 해당 권한을 읽기 전용으로 설정하는 것이 좋습니다.
EXP 설명:
- 노드를 검색하고 POST할 수 있는 노드인지 반복적으로 판단해야 합니다.
노드를 검색하고 POST할 수 있는 노드를 확인해야 합니다.
- 운영 체제 버전을 확인한 후 명령을 입력하여 작업을 수행해야 합니다.
또한 운영 체제 버전을 확인한 후 작업을 수행할 명령을 입력해야 합니다.