Vulhub 是一个专门用于学习渗透测试和网络安全的虚拟靶场平台,其中包含了大量的漏洞环境和实验场景,供安全从业者进行实践和学习。通过 Vulhub,用户可以模拟真实的漏洞环境,并通过实际操作来理解漏洞原理、利用方法以及相应的防御措施。 要使用 Vulhub 靶场,你可以按照以下步骤进行操作:
2017年9月28日,公司扫描器发现某业务存在一例任意文件读取漏洞,团队跟进分析后发现这是Node.js和Express共同导致的一个通用漏洞。在我们准备告知官方时,发现Node.js官网于9月29号给出了漏洞公告,对应的CVE编号为CVE-2017-14849。
Node.js是一个Javascript运行环境(runtime),发布于2009年5月,由Ryan Dahl开发,实质是对Chrome V8引擎进行了封装。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好。
Express 是一个简洁而灵活的 node.js Web应用框架, 提供一系列强大特性帮助你创建各种Web应用。Express 不对 node.js 已有的特性进行二次抽象,我们只是在它之上扩展了Web应用所需的功能。丰富的HTTP工具以及来自Connect框架的中间件随取随用,创建强健、友好的API变得快速又简单。
Node.js 8.5.0 + Express 3.19.0-3.21.2 Node.js 8.5.0 + Express 4.11.0-4.15.5
编译及运行环境:
docker compose build
docker compose up -d访问http://192.168.94.193:3000/即可查看到一个web页面,其中引用到了文件/static/main.js,说明其存在静态文件服务器。


使用burpsuite抓取数据包并修改包发送,发送如下数据包,即可读取passwd:

更多链接可参考腾讯安全应急响应中心:Node.js CVE-2017-14849 漏洞分析