VulnNodeApp:一款包含大量安全漏洞的Node.js安全练习平台
2024-8-9 10:10:24 Author: www.freebuf.com(查看原文) 阅读量:12 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

关于VulnNodeApp

VulnNodeApp是一款包含大量安全漏洞的Node.js应用程序,VulnNodeApp基于Node.js开发,本质上是一个使用 node.js、express 服务器和 ejs 模板引擎制作的易受攻击的应用程序。对于红队和蓝队安全研究人员来说,可以将其视作一个安全练习平台来使用。

漏洞覆盖

当前版本的VulnNodeApp引入了下列常见安全漏洞:

1、SQL 注入

2、跨站点脚本 (XSS)

3、不安全的直接对象引用(IDOR)

4、命令注入

5、任意文件检索

6、正则表达式注入

7、外部 XML 实体注入 (XXE)

8、Node.js 反序列化

9、安全配置错误

10、不安全的会话管理

11、即将增加新的漏洞,例如CORS、模版注入等...

工具要求

Node.js

Express

EJS

工具安装

由于该工具基于Node.js开发,因此我们首先需要在本地设备上安装并配置好最新版本的Node.js环境。

接下来,广大研究人员可以直接使用下列命令将该项目源码克隆至本地:

git clone https://github.com/4auvar/VulnNodeApp.git

工具配置

应用程序设置

1、使用 npm 安装最新的 node.js 版本;

2、打开终端/命令提示符并导航到下载/克隆的存储库的位置;

3、运行下列命令:

npm install

数据库设置

1、安装并配置最新的 mysql 版本并启动 mysql 服务/守护进程;

2、以root用户登录mysql并运行以下sql脚本:

CREATE USER 'vulnnodeapp'@'localhost' IDENTIFIED BY 'password';

create database vuln_node_app_db;

GRANT ALL PRIVILEGES ON vuln_node_app_db.* TO 'vulnnodeapp'@'localhost';

USE vuln_node_app_db;

create table users (id int AUTO_INCREMENT PRIMARY KEY, fullname varchar(255), username varchar(255),password varchar(255), email varchar(255), phone varchar(255), profilepic varchar(255));

insert into users(fullname,username,password,email,phone) values("test1","test1","test1","[email protected]","976543210");

insert into users(fullname,username,password,email,phone) values("test2","test2","test2","[email protected]","9887987541");

insert into users(fullname,username,password,email,phone) values("test3","test3","test3","[email protected]","9876987611");

insert into users(fullname,username,password,email,phone) values("test4","test4","test4","[email protected]","9123459876");

insert into users(fullname,username,password,email,phone) values("test5","test5","test5","[email protected]","7893451230");

设置基本环境变量

用户需要设置以下环境变量:

DATABASE_HOST(例如:localhost、127.0.0.1 等...)

DATABASE_NAME(例如:vuln_node_app_db 或您在上面的 DB 脚本中更改的 DB 名称)

DATABASE_USER(例如:vulnnodeapp 或您在上面的 DB 脚本中更改的用户名)

DATABASE_PASS(例如:密码或您在上面的 DB 脚本中更改的密码)

启动服务器

1、打开命令提示符/终端并导航到存储库的位置;

2、运行命令:

npm start

3、通过下列地址访问应用程序即可;

http://localhost:3000

项目地址

VulnNodeApp:【GitHub传送门

参考资料

https://twitter.com/4auvar

本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022


文章来源: https://www.freebuf.com/sectool/408168.html
如有侵权请联系:admin#unsafe.sh