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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
xss2shell — 🔥 XSS2Shell — CVE-2026-64638 스캐너 및 PoC 툴킷 | Kitploit
도구/GitHubGitHub/0xlipon/xss2shell
Defensive ToolsReconnaissanceVulnerability ScannersWeb Vulnerability ScannersPayload GenerationVulnerability AnalysisWeb Application ExploitationWeb SecurityPenetration Testing
GitHub0xlipon/xss2shell

xss2shell

3261개월 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

🔥 XSS2Shell — CVE-2026-64638 스캐너 및 PoC 툴킷

저장소 보기웹사이트

CVE-2026-64638 CVSS 8.9 pwn.ai Python 3.8+

🔥 XSS2Shell — CVE-2026-64638 스캐너 및 PoC 툴킷

5억 개 이상의 웹사이트에 영향을 미치는 WordPress 사전 인증 XSS-to-RCE 체인을 위한 동작 우선(behavior-first) 대량 스캐너이자 증거 등급 PoC 생성기입니다.
탐지 전용. 무기화 없음. 버그 바운티 프로그램과 블루 팀을 위해 제작되었습니다.

공식 체커: https://pwn.ai/xss2shell-checker.html

이 취약점이란? • 빠른 시작 • Shodan Dorks • 사용법 • 결정 매트릭스 • 탐지 • FAQ


🔎 Shodan Dorks

스캔 전에 인터넷에서 잠재적으로 취약한 WordPress 인스턴스를 찾아보세요:

핵심 WordPress 검색

http.component:"wordpress" -http.title:"Just a moment"

자동화된 요청을 차단하거나 챌린지를 요구하는 Cloudflare "I'm Under Attack" 모드 / 봇 보호 페이지를 제외하면서 WordPress 사이트를 찾습니다.

로그인 페이지로 좁히기

http.component:"wordpress" http.title:"Log In"

WordPress 로그인 페이지만 반환합니다 — CVE-2026-64638의 정확한 공격 표면입니다.

버전별 탐색

http.component:"wordpress" "wp-content" "?ver=7.0" -"?ver=7.0.3"

에셋 버전 핑거프린팅을 통해 7.0.3 패치가 없는 WordPress 7.0.x 인스턴스를 식별합니다.

공격 표면 넓히기

http.component:"wordpress" http.html:"wp-login.php"

wp-login.php에 접근 가능하지만 현재 페이지가 아닐 수 있는 사이트를 포착합니다 — 더 넓은 범위를 커버합니다.

Cloudflare 제외 (결합)

http.component:"wordpress" -http.title:"Just a moment" -http.title:"Attention Required" -org:"Cloudflare"

대부분의 Cloudflare 프런트 대상(target)을 걸러내는 공격적인 필터입니다. --active로 대규모 스캔 시 사용하세요 — Cloudflare가 프로브 요청을 속도 제한(rate-limit)하거나 차단합니다.

팁: shodan download로 Shodan 결과를 내보내고 호스트 이름을 xss2shell_mass.py -i로 직접 파이프하세요.


🚨 CVE-2026-64638이란?

2026년 8월 7일, pwn.ai가 CVE-2026-64638(XSS2Shell)을 공개했습니다 — 이는 WordPress Core의 치명적인 사전 인증 크로스사이트 스크립팅(XSS) 취약점으로, 서버에서 **원격 코드 실행(RCE)**까지 이어지는 공격 체인입니다. [인용:pwn.ai 블로그]

이 버그는 PHP의 strip_tags()와 WordPress의 wp_kses_post() 사이의 파서 불일치를 악용합니다:

  • strip_tags() 는 < 바로 뒤에 문자가 오는 형태를 HTML 태그로 식별합니다. < area id=...>(공백 포함)는 텍스트로 처리됩니다 — 살아남습니다.
  • wp_kses_post()(KSES)는 < area를 유효한 <area> 요소로 인식합니다 — 그리고 <area>는 KSES에서 **허용 목록(allowlist)**에 등록되어 있습니다. [인용:pwn.ai 블로그]

특수하게 조작된 사용자 이름 < area id=ajaxurl href=/?rest_route=/&_method=GET&_jsonp=alert>...으로 한 번의 실패한 로그인을 시도하면 두 살균기를 모두 우회하고, 로그인 페이지에서 실제 DOM으로 렌더링되며, DOM 클로버링을 통해 WordPress 자체 user-profile.js 스크립트를 가로채고, WordPress 오리진에서 alert()를 실행합니다 — 클릭 0회, 인증 불필요, 쿠키 불필요. [인용:pwn.ai 블로그]

로그인한 관리자 권한으로 승격된다면? 동일한 프리미티브가 Same Origin Method Execution(SOME)을 통해 애플리케이션 비밀번호를 탈취하고, 악성 플러그인을 업로드하며, www-data 권한으로 PHP를 실행합니다. [인용:pwn.ai 블로그] [인용:hadrian.io 블로그]

영향을 받는 버전: WordPress 6.4 ~ 7.0.2 — 7.0.3에서 패치, 4.7+ 버전으로 백포트됨.
영향 규모: 공개 시점 기준 약 5억 개 웹사이트. [인용:pwn.ai 블로그]

📰 주요 자료

자료링크
원본 공개 (pwn.ai)pwn.ai/blog/xss2shell
Hadrian 기술 분석hadrian.io/blog/wordpress-xss2shell
WordPress 권고 (GHSA)GHSA-52p2-r8wf-jcrf
SOME 공격 연구 (2022)pwn.ai/blog/bypass-csp-using-wordpress
WordPress 7.0.3 릴리스wordpress.org/news/2026/08/wordpress-7-0-3-release

⚡ 이 툴킷이 하는 일

이것은 탐지 전용 툴킷입니다. 취약점을 무기화하지 않으며, 보안 연구자, 버그 바운티 헌터, 블루 팀에게 다음을 수행하는 데 필요한 모든 것을 제공합니다:

  1. 대량 스캔 — 동작 우선(behavior-first) 정확성으로 수백 개의 WordPress 호스트를 몇 분 만에 스캔
  2. 증거 등급 PoC 페이지 생성 — XSS가 실제로 발동함을 증명 (alert()만 사용)
  3. 결과 분류 — 정확한 신뢰 수준으로 분류, 버전 일치로 인한 오탐 없음

🔑 왜 동작 우선(Behavior-First)인가?

"버전 문자열은 코드의 패치 수준이 어떠해야 하는지를 알려줍니다.
버그가 실제로 발동하는지는 로그인 페이지의 살균기 동작만이 말해줍니다."

관리형 호스트는 버전 문자열을 올리지 않고 보안 패치를 조용히 백포트합니다. 로그인 강화 플러그인은 오류 메시지를 완전히 대체하여 패치되지 않은 버전에서도 반사 채널을 차단합니다. 버전 전용 스캐너는 오탐과 미탐을 모두 발생시킵니다. 이 스캐너는 단일 무해 프로브를 전송하고 실제 살균기 동작을 분류합니다.


🚀 빠른 시작

설치

git clone https://github.com/jakestone/xss2shell.git
cd xss2shell
pip install -r requirements.txt

5분 스캔

# Passive — no probes sent to target, version + endpoint fingerprinting only
python3 xss2shell_mass.py -i domains.txt -o results

# Active — sends ONE benign failed-login per host (authorized assets only!)
python3 xss2shell_mass.py -i domains.txt -o results --active --workers 80

증거 PoC 생성

# Single target
python3 make_poc.py --target https://blog.example.com

# Batch from scanner output
python3 make_poc.py --from-results results.csv -o pocs/

동영상을 녹화하면서 생성된 .poc.html을 브라우저에서 열어보세요 → alert()가 실행되면 사전 인증 XSS 증거가 확보된 것입니다.


📖 사용법

대량 스캐너 (xss2shell_mass.py)

usage: xss2shell_mass.py [-h] -i INPUT [-o OUTPUT]
                         [--active] [--workers WORKERS]
                         [--timeout TIMEOUT] [--quiet]
플래그설명
-i, --input줄당 하나의 호스트가 포함된 파일 (도메인 또는 전체 URL)
-o, --output출력 파일의 기본 경로 (.csv + .json 생성)
--active동작 프로브 활성화 — 호스트당 실패한 로그인 1회
--workers스레드 풀 크기 (기본값: 50, 연결 상태가 좋으면 최대 ~200)
--timeoutHTTP 타임아웃(초) (기본값: 10)
--quietconfirmed_vulnerable, vulnerable, likely_vulnerable만 출력

패시브 스캔 증거 (능동 프로브 없음, 항상 수집됨)

  1. 홈페이지 → WordPress 핑거프린트 (meta generator, 에셋 ?ver= 파라미터, wp-content 참조)
  2. 로그인 페이지 → 접근 가능성, 기본 로그인 폼 감지, user-profile.js 가젯 등록 여부, 코어 에셋 버전
  3. REST JSONP 스모크 테스트 → /?rest_route=/&_method=GET&_jsonp=<random>에 대한 무해한 GET 요청 — JSONP 경로가 열려 있나?
  4. Feed/Readme 폴백 → 홈페이지 핑거프린트가 없을 때 버전 추출

능동 프로브 (POST 1회, --active 플래그)

사용자 이름 < area id=<RANDOM> href=/x2s>로 실패한 로그인 1회를 전송하고 HTML 응답을 분류합니다:

  • bypass — 마커가 포함된 실제 <area> 요소가 살아남음 → strip_tags/KSES 불일치 확인됨
  • escaped — 마커는 존재하지만 엔티티 인코딩됨 → 패치 또는 강화 조치 존재
  • stripped — 기본 WP 오류 표시, 태그 제거됨 → acevomod 또는 패치됨
  • closed — 사용자 이름 반사가 전혀 없음 → 로그인 강화 플러그인 설치됨

PoC 생성기 (make_poc.py)

usage: make_poc.py [-h] [--target TARGET] [--from-results FROM_RESULTS]
                   [-o OUTDIR]

각 대상에 대해 pwn.ai가 공개한 PoC 페이지를 생성합니다 — 패치되지 않은 WordPress에서 alert()를 트리거하는 바로 그 HTML 폼입니다. 세 가지 페이로드 변형이 주석으로 포함되어 있습니다:

변형href 값사용 시기
기본(Default)/?rest_route=/&_method=GET&_jsonp=alert표준 WordPress
엔벨로프(Envelope)/?rest_route=/&_method=GET&_envelope=1&_jsonp=alertREST가 401을 반환할 때 (200으로 래핑됨)
WAF 피벗(Pivot)/wp-json/wp/v2/statuses/publish?_jsonp=alert&_method=GET?rest_route=가 WAF에 차단될 때

🧠 결정 매트릭스

스캐너의 결정 엔진은 버전 분류(WordPress.org의 stable-check API 기반)와 동작 증거를 결합하여 10가지의 서로 다른 판정을 내립니다:

도구 다운로드