
CVE-2026-5513 — Bookly ≤ 27.2 쿠키를 통한 저장형 XSS
CVE-2026-5513 — Bookly ≤ 27.2 쿠키를 통한 저장형 XSS
CVE-2026-5513 — Bookly ≤ 27.2 쿠키를 통한 저장형 XSS
CVE CVSS 유형 인증
https://t.me/FreeToolsCpa CVE 파일 그룹 내
개요
| 필드 | 값 |
|---|---|
| CVE ID | CVE-2026-5513 |
| 취약점 유형 | 저장형 크로스 사이트 스크립팅 (XSS) |
| 플러그인 | Bookly — 온라인 예약 및 약속 예약 시스템 |
| 영향을 받는 버전 | ≤ 27.2 |
| 패치된 버전 | 27.3+ |
| CVSS 3.1 | 7.2 (높음) — CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:L/A:N |
| CWE | CWE-79 |
| 인증 필요 | 없음 |
| 전제 조건 | 쿠키에 개인 정보 저장 기능이 활성화되어야 함 (기본적으로 비활성화됨) |
| 설명 | |
WordPress용 Bookly 플러그인은 버전 27.2 이하에서 bookly-customer-full-name 쿠키를 통한 저장형 크로스 사이트 스크립팅에 취약합니다. 이는 불충분한 입력 정제 및 출력 이스케이프 때문입니다. |
"쿠키에 개인 정보 저장" 설정이 활성화된 경우, 플러그인은 bookly-customer-full-name 쿠키 값을 읽어 적절한 이스케이프 없이 예약 양식 HTML에 직접 렌더링합니다. 인증되지 않은 공격자는 이 쿠키를 통해 임의의 JavaScript 페이로드를 주입할 수 있으며, 이는 어떤 사용자(관리자 포함)가 Bookly 예약 양식이 포함된 페이지를 방문할 때 실행됩니다.
공격 흐름
공격자 → 악성 쿠키 설정 (bookly-customer-full-name=<script>...</script>)
→ Bookly 예약 양식이 있는 페이지 방문
→ 플러그인이 쿠키를 읽고 이스케이프 없이 값을 렌더링
→ XSS 페이로드가 피해자 브라우저 컨텍스트에서 실행
근본 원인
// VULNERABLE — Bookly ≤ 27.2
$full_name = $_COOKIE['bookly-customer-full-name']; // No sanitization
echo ''; // No escaping
// PATCHED — Bookly 27.3+
$full_name = sanitize_text_field($_COOKIE['bookly-customer-full-name']);
echo '';
기능
✓ 자동 IP/도메인 프로빙 (HTTP/HTTPS, 일반 포트, 리디렉션 탐지)
✓ WordPress 및 Bookly 플러그인 탐지 (버전 확인 포함)
✓ 쿠키 설정 탐지 (BooklyL10n JS 분석 + canary 반사)
✓ 다중 컨텍스트 XSS 테스트 (HTML, JavaScript, 속성 주입)
✓ 페이로드 주입 및 반사 확인
✓ 단일 대상 또는 파일에서 대량 스캔
✓ 멀티스레드 스캐닝 (최대 20개 스레드)
✓ 프록시 지원 (Burp 등)
✓ 취약 결과 자동 저장
✓ 대화형 메뉴 + CLI 모드
설치
pip install requests colorama
사용법
CLI 모드
python CVE-2026-5513.py -u https://target.com -v
python CVE-2026-5513.py -u 167.99.0.203 -v
python CVE-2026-5513.py -u https://target.com --inject -v
python CVE-2026-5513.py -u https://target.com --inject --payload ""
python CVE-2026-5513.py -l targets.txt -t 20 -o vuln.txt
python CVE-2026-5513.py -u https://target.com -v --proxy http://127.0.0.1:8080 대화형 모드 python CVE-2026-5513.py 옵션
https://example.com http://example.com example.com 192.168.1.100 192.168.1.100:8080 베어 IP의 경우, 도구가 자동으로:
포트 443, 80, 8443, 8080 프로빙 HTTP → HTTPS 리디렉션 탐지 IP → 도메인 리디렉션 탐지 (예: 167.99.0.203 → https://book.repairrite.com) WordPress 하위 디렉터리 스캔 (/wp/, /blog/, /wordpress/ 등) 익스플로잇 체인 0단계 → 대상 프로빙 (IP/도메인 → 기본 URL 확인, 리디렉션 탐지) 1단계 → Bookly 플러그인 탐지 (readme.txt, 플러그인 디렉터리, assets, 버전 확인) 2단계 → 쿠키 설정 확인 (BooklyL10n JS 분석 + canary 반사 테스트) 3단계 → XSS 반사 테스트 (HTML 컨텍스트, JS 컨텍스트, 속성 컨텍스트) 4단계 → 페이로드 주입 (--inject 모드인 경우 반사 확인) Google Dorks
body="bookly-responsive-appointment-booking-tool" body="bookly-customer-full-name" body="bookly-form-group" && body="wp-content/plugins/bookly"
inurl:"/wp-content/plugins/bookly-responsive-appointment-booking-tool/readme.txt" intitle:"Book Appointment" inurl:"booking" intext:"bookly" 수정
| 플래그 | 설명 |
|---|
| -u URL | 단일 대상 (URL, 도메인 또는 IP) |
| -l FILE | 대상 목록 파일 (한 줄에 하나) |
| --inject | XSS 페이로드 주입 (기본: 확인만) |
| --payload STR | 사용자 정의 XSS 페이로드 |
| -t N | 스레드 수 (기본: 10, 최대: 20) |
| --proxy URL | HTTP 프록시 (예: http://127.0.0.1:8080) |
| -o FILE | 결과를 파일에 저장 |
| -v | 자세한 출력 |
| 대상 형식 | |
이 도구는 -u 또는 대상 목록 파일에서 다음 형식을 허용합니다: |
| 우선순위 | 조치 |
|---|
| 🔴 | Bookly를 버전 27.3+로 업데이트 |
| 🟡 | Bookly 설정 → 일반에서 "쿠키에 개인 정보 저장" 비활성화 |
| 🟢 | WAF 규칙을 배포하여 쿠키 값의 XSS 필터링 |
| 🟢 | Content-Security-Policy (CSP) 헤더 구현 |
| 참조 | |
| NVD — CVE-2026-5513 | |
| Wordfence Advisory | |
| Tenable | |
| Bookly Changelog | |
| 면책 조항 | |
| 이 도구는 승인된 보안 테스트 및 교육 목적으로만 제공됩니다. 승인되지 않은 컴퓨터 시스템 접근은 불법입니다. 항상 테스트 전에 적절한 승인을 받으십시오. 저자는 이 도구의 오용에 대해 책임을 지지 않습니다. | |
| https://t.me/FreeToolsCpa https://t.me/FreeToolsCpa https://t.me/FreeToolsCpa |