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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2026-27886-check — Strapi 인스턴스가 CVE-2026-27886 (인증되지 않은 부울 오라클을 통한 관리자 비밀 정보 유출)에 취약한지 탐지합니다. | Kitploit
도구/GitHubGitHub/bishopfox/cve-2026-27886-check
ReconnaissanceVulnerability AnalysisExploitationWeb Application ExploitationInformation GatheringPenetration Testing
GitHubbishopfox/cve-2026-27886-check

CVE-2026-27886-check

Strapi 인스턴스가 CVE-2026-27886 (인증되지 않은 부울 오라클을 통한 관리자 비밀 정보 유출)에 취약한지 탐지합니다.

저장소 보기
1113개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2026-27886 취약점 평가 도구

전체 계정 탈취 체인을 수행하지 않고 Strapi 인스턴스가 CVE-2026-27886에 취약한지 안전하게 탐지합니다. Bishop Fox 블로그에서 전체 분석 글을 참조하세요.

설명

CVE-2026-27886은 Strapi 버전 4.0.0부터 5.36.1까지에서 발생하는 인증되지 않은 파라미터 정리 우회 취약점으로, 원격의 인증되지 않은 공격자가 공개 Content API를 통해 관리자 비밀정보를 유출할 수 있습니다. @strapi/utils의 쿼리 정리기는 문서화된 filters, sort, fields, populate 쿼리 키만 처리하고, 요청의 다른 모든 최상위 키는 조용히 보존합니다. 알려지지 않은 키는 transformQueryParams를 통해 전달되어 strapi.db.query(...)에 SQL WHERE 절로 도달합니다. 공개 Content API 컬렉션에 대해 where[updatedBy][resetPasswordToken][$startsWith]=<prefix>를 조사함으로써, 공격자는 응답의 meta.pagination.total 필드를 통해 관리자 비밀정보를 한 글자씩 유출할 수 있습니다.

이 도구는 비파괴적 취약점 테스트를 다음과 같이 수행합니다:

  1. 기본 GET /api/<collection> 요청 전송
  2. 동일한 GET 요청에 ?where[id][$lt]=-1을 추가하여 전송
  3. 두 meta.pagination.total 값을 비교하여 where 절이 데이터베이스 계층에 도달했는지 확인

where[id][$lt]=-1 조건은 실제 행과 일치할 수 없으므로, 데이터베이스 계층에서 이 절이 적용되면 응답은 0행으로 줄어듭니다. 패치가 적용된 경우, 알려지지 않은 where 키는 쿼리가 구성되기 전에 정리기의 허용 목록에 의해 제거되며 응답은 기본 요청과 동일합니다. 이 프로브는 비공개 관리자 컬럼에 절대 접근하지 않으며 어떤 데이터도 수정하지 않습니다.

  • 취약한 서버는 다른 총계를 반환합니다: where 절이 데이터베이스 계층에서 적용되었기 때문에 기본 요청은 최소 하나의 행을 반환하는 반면 조건 요청은 0을 반환합니다.
  • 패치된 서버(Strapi 5.37.0 이상)는 두 요청 모두에 대해 동일한 총계를 반환합니다. sanitizeQuery가 인식되지 않는 모든 최상위 키를 데이터베이스에 도달하기 전에 제거하기 때문입니다.
  • Strapi 서버가 아니거나, 접근할 수 없는 엔드포인트 또는 빈 컬렉션은 INCONCLUSIVE 결과를 보고합니다.

취약한 서버에서 이 도구는 where[updatedBy][email][$startsWith]=<prefix>를 통해 관리자 이메일 주소를 한 글자씩 열거합니다. 관리자 계정 탈취로 연결되지는 않습니다.

설치

root@kitploit:~
git clone https://github.com/BishopFox/CVE-2026-27886-check
cd CVE-2026-27886-check

외부 종속성이 없습니다. 스캐너는 Python 표준 라이브러리 모듈만 사용합니다.

사용법

Strapi 서버의 공개 Content API 컬렉션 엔드포인트를 테스트합니다. Strapi는 콘텐츠 유형의 pluralName을 URL 경로에 매핑하므로 정확한 이름은 배포에 따라 다릅니다.

root@kitploit:~
python3 CVE-2026-27886-check.py <ENDPOINT>

예시: 취약한 서버

root@kitploit:~
$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential confirmed: baseline total=1, where-test total=0 -> VULNERABLE
[+] Enumerating admin email
    admin email = [email protected]
[+] Done. To remediate, upgrade to Strapi 5.37.0 or later.

예시: 패치된 서버

root@kitploit:~
$ python3 CVE-2026-27886-check.py http://target.example.com/api/articles
[+] Target: http://target.example.com/api/articles
[+] Differential check: baseline total=1, where-test total=1 -> NOT VULNERABLE

사전 조건

이 도구는 다음 조건이 충족될 때만 취약점을 탐지할 수 있습니다:

  • 대상이 Strapi 4.0.0부터 5.36.1까지 실행 중
  • Public 역할에 최소 하나의 콘텐츠 유형에 대한 find 권한이 부여됨
  • 해당 콘텐츠 유형의 최소 하나의 행에 updated_by_id가 NULL이 아님
  • 대상 컬렉션 URL에 접근 가능

조건이 충족되지 않으면 도구는 INCONCLUSIVE 결과를 보고합니다.

라이선스

이 코드는 MIT 라이선스 하에 배포됩니다.

법적 고지

사전 상호 동의 없이 이 도구를 대상 공격에 사용하는 것은 불법입니다. 모든 관련 지역, 주, 연방 법률을 준수하는 것은 최종 사용자의 책임입니다. 개발자는 어떠한 책임도 지지 않으며 이 프로그램으로 인한 오용이나 손해에 대해 책임을 지지 않습니다.

참고 자료

  • Strapi Security Advisory GHSA-rjg2-95x7-8qmx
  • Bishop Fox Blog: Full Technical Analysis
  • NVD — CVE-2026-27886
도구 다운로드