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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-22783 — CVE-2025-22783의 PoC | Kitploit
도구/GitHubGitHub/dottak/cve-2025-22783
Vulnerability AnalysisCode AnalysisExploitationWeb Application ExploitationPenetration Testing
GitHubdottak/cve-2025-22783

CVE-2025-22783

CVE-2025-22783의 PoC

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-22783

1️⃣ 구성 요소 유형

WordPress 플러그인

2️⃣ 구성 요소 세부 정보

Component name SEO Plugin by Squirrly SEO

Vulnerable version <= 12.4.01

Component slug squirrly-seo

Component link https://wordpress.org/plugins/squirrly-seo/

3️⃣ OWASP 2017: TOP 10

Vulnerability class A3: 인젝션

Vulnerability type SQL 인젝션

4️⃣ 사전 요구 사항

Contributor +

5️⃣ 취약점 세부 정보

👉 간단한 설명

Squirrly SEO 플러그인은 특정 키워드를 기반으로 소스 페이지와 대상 페이지를 선택할 수 있는 내부 링크 기능을 통해 웹사이트의 SEO를 개선할 수 있게 해줍니다. 내부 링크 관리 페이지(/wp-admin/admin.php?page=sq_focuspages&tab=innerlinks)에서 각 링크의 키워드, 소스 페이지, 대상 페이지 및 상태를 관리할 수 있습니다.

Squirrly SEO 플러그인 12.4.01 이하 버전에서는 내부 링크 관리 페이지에서 생성된 내부 링크를 검색할 수 있습니다. 사용자(Contributor+)가 입력한 검색어가 검증 없이 데이터베이스 쿼리에 직접 전달될 때 SQL 인젝션 취약점이 발생합니다.

검색 결과는 내부 링크 관리 페이지에 직접 표시되지 않지만, SLEEP 함수와 같은 시간 기반 SQL 인젝션 기법을 사용하여 데이터베이스 정보를 추출할 수 있습니다.

👉 재현 방법 (PoC)

  1. Squirrly SEO 플러그인 12.4.01 이하 버전이 설치된 대상 사이트에 Contributor 이상의 권한을 가진 계정으로 로그인합니다.

  2. 그런 다음 아래 URL에 접근하면 SQL 인젝션 페이로드의 IF 문 조건 '1=1'이 항상 참이므로 SLEEP(5) 함수가 실행되어 5초 후에 페이지가 로드됩니다.

    root@kitploit:~
    http://localhost:8080/wp-admin/admin.php?page=sq_focuspages&tab=innerlinks&stype&squery='+AND+1%3D2)+UNION+SELECT+(IF(1=1,SLEEP(5),1)),2,3,4,5,6,7%23
    
  3. 반면에 IF 문 조건을 '1=2'로 변경하면 결과 값이 거짓이므로 페이지가 즉시 로드됩니다.

    root@kitploit:~
    http://localhost:8080/wp-admin/admin.php?page=sq_focuspages&tab=innerlinks&stype&squery='+AND+1%3D2)+UNION+SELECT+(IF(1=2,SLEEP(5),1)),2,3,4,5,6,7%23
    

👉 추가 정보 (선택 사항)

[취약점의 근본 원인]

Squirrly SEO 플러그인의 내부 링크 관리 페이지(/wp-admin/admin.php?page=sq_focuspages&tab=innerlinks)에서 내부 링크를 검색할 때 /wp-content/plugins/squirrly-seo/models/Qss.php 파일의 getSqInnerlinks 함수를 호출하여 데이터베이스에 쿼리합니다.

image

이때 변수 $query_where가 SQL 쿼리에 직접 삽입되는 것을 확인할 수 있습니다. 변수 $query_where의 값이 어떻게 구성되는지 살펴보겠습니다:

  1. 75번째 줄: 변수 $search에는 내부 링크 검색 시 입력한 검색어가 포함되며, sanitize_text_field 함수를 사용하여 사용자 입력 데이터를 처리합니다.
  2. 76번째 줄: 이후 변수 $search는 조건절의 일부로 사용되어 변수 $query_where에 저장됩니다.
  3. 79번째 줄 ~ 80번째 줄: 변수 $query_where에 추가 조건이 추가되고, apply_filters 함수를 통해 필터가 적용됩니다.

따라서 내부 링크 검색 시 사용자가 입력한 검색어는 sanitize_text_field 함수로 처리되지만, 이 함수는 SQL 인젝션 공격을 방지할 수 없습니다. SQL 쿼리에 사용되는 특수 문자(작은따옴표('), 주석(#) 등)는 필터링되지 않으며, SQL 인젝션 페이로드가 포함된 변수 $search가 적절한 이스케이프 없이 데이터베이스 쿼리에 전달될 때 SQL 인젝션 취약점이 발생합니다.

[PoC 코드 구현 및 실행]

⚠️ 구현된 PoC 코드는 관리자 계정으로 로그인하여 취약점 재현에 필요한 최소 권한(Contributor+)을 가진 계정을 생성한 다음, 해당 계정을 사용하여 취약점을 트리거합니다.

  1. PoC 코드를 편집기에서 열고 WordPress 사이트 주소와 관리자 자격 증명을 입력합니다.

image

  1. 다음으로 아래 명령어를 입력하여 PoC 코드를 실행합니다.

    Required module requests

    root@kitploit:~
    python poc.py
    

    image

6️⃣ Exploit 데모

video

7️⃣ 참고 자료

  • https://nvd.nist.gov/vuln/detail/CVE-2025-22783
도구 다운로드