
Node.js不安全反序列化(CVE-2017-5941)的教学演示,包含基于cookie的payload注入和反弹shell利用,适用于安全培训。
Node.js 是一个开源运行时环境,用于在 JavaScript 中实现服务器功能。
Node.js 中的一个特定软件包包含一个处理反序列化的易受攻击函数,如果客户端提供特制的 cookie,该函数会导致执行未授权命令。
该漏洞已被复现,并可能发起反向 shell,这是由于从客户端请求的 cookie 中读取的未净化输入数据所致。客户端可以编辑其 cookie,注入包含 bash 命令的不安全载荷,并将其发送到服务器,服务器将盲目执行该命令。这可能导致未经授权的用户访问数据库或整个机器。
此类漏洞的伦理影响在于后端服务器数据库中可访问的数据。根据数据性质,可能损害用户的安全,并影响公司的可靠性和声誉。因此,在其他攻击者之前发现漏洞非常重要。有多种不同的工具可用于识别这些漏洞,例如 Snyk、Burp Suite 以及其他付费选项。
缓解此漏洞的最佳方法是进行适当的输入净化,并停止使用 node.js 中易受攻击的 unserialise 函数。建议使用该易受攻击函数的替代品 JSON.parse。