导语:本文将介绍一个由Appsecco使用NodeJs开发的Web漏洞学习程序——DVNA,用于学习如何攻击OWASP Top10的漏洞以及如何编写安全的代码。

本文将介绍一个由Appsecco使用NodeJs开发的Web漏洞学习程序——DVNA,用于学习如何攻击OWASP Top10的漏洞以及如何编写安全的代码。

DVNA是用NodeJS 编写的一个Web漏洞学习的应用程序。它可以用于识别,攻击和修复(最为重要的一件事情)NodeJS中出现的OWASP Top 10的漏洞。 

1_ltESUco7ZJ5wJeB9T80o3Q.png

为什么选择DVNA?

虽然目前已经有几个NodeJS编写的用于学习Web漏洞的应用程序(如Juice ShopNode Goat),并且OWASP提供了一个Web漏洞学习应用程序的目录列表,但是我们意识到这些应用程序要比安全的软件开发更适合用于学习安全评估。

我们需要一个简单的NodeJs Web应用程序,通过使用这个应用程序,开发人员可以学习如何避免常见的Web漏洞。

该应用程序附带了一个修复分支,其中包含应用程序中每个漏洞的修复程序示例。这可以作为修复漏洞的一个参考。因此,该应用程序提供了理解安全问题的完整视图以及解决这些安全问题的方法。

学习程序提供了哪些功能?

DVNA有以下几个特点:

1.  每个漏洞的详细概述

2.  演示每个漏洞的攻击场景

3.  学习参考内容

1_ZZd0xXpkM3MbGYzX3OrS1w.png

DVNA中的XSS漏洞部分

它还附带了一个内容非常全面的电子书,电子书的内容如下:

1.  安装和设置DVNA的详细说明

2.  关于利用漏洞的详细说明

3.  易受攻击的代码片段以及相应的修复代码

4.  避免此类漏洞的安全开发建议

5.  学习参考的相关知识

DVNA – 开发者安全指南

1_g2XtrYvhCfute64lGeyYOg.png

学习指南Gitbook页面的屏幕截图

开始使用DVNA

DVNA可以通过三种方式进行部署:

1.  对于开发人员,使用docker-compose可以在代码更新时自动重新加载。

2.  对于安全测试人员,可以使用Docker Hub的官方镜像

3.  对于高级用户,请完全使用手动进行设置

对于开发人员

1.  克隆应用程序源

git clone 
https://github.com/appsecco/dvna;cd dvna

2. 创建vars.env文件,并配置所需的数据库选项,如下面的示例:

 MYSQL_USER = dvna 
 MYSQL_DATABASE = dvna 
 MYSQL_PASSWORD = passw0rd 
 MYSQL_RANDOM_ROOT_PASSWORD = yes

3.使用docker-compose启动应用程序和数据库

docker-compose up

打开http://127.0.0.1:9090/访问该应用程序并开始学习和攻击这个应用程序!

对于安全测试人员

1.   创建一个名为vars.env的文件,并使用所需的配置,如下面的示例:

 MYSQL_USER = dvna 
 MYSQL_DATABASE = dvna 
 MYSQL_PASSWORD = passw0rd 
 MYSQL_RANDOM_ROOT_PASSWORD = yes 
 MYSQL_HOST = mysql-db 
 MYSQL_PORT = 3306

2.启动一个MySQL容器

docker run --name dvna-mysql --env-file vars.env -d mysql:5.7

3.使用官方镜像启动应用程序

docker run --name dvna-app --env-file vars.env --link dvna-mysql:mysql-db -p 9090:9090 appsecco/dvna

打开http://127.0.0.1:9090/访问该应用程序并开始学习和攻击这个应用程序!

有关手动安装和设置的步骤,请参阅github上的详细说明。

我在工作中一直在使用NodeJS,而且有很长一段时间了,并且我期望这是一个比较简单的项目。但是在我的知识体系中,我发现存在很多盲点,结果证明这是一个了不起的学习体验,就像我在Appsecco做的所有其他事情一样!

这个应用程序代表着我个人的技术发展和经验的里程碑,我很高兴与你们分享这个成果!我希望每个使用DVNA的人都能体验到同样的学习乐趣。这是我对安全领域的一点贡献。

这项工作受到了Abhisek以前的一个内部项目的启发。在开发这个应用程序的过程中,我非常感谢他和Akash的指导。

源链接

Hacking more

...