DVWA系列1:搭建 DVWA 环境

DVWA 是一个合法的漏洞测试、学习环境,先引用一段官方的介绍:

Damn Vulnerable Web Application (DVWA) is a PHP/MySQL web application that is damn vulnerable. Its main goal is to be an aid for security professionals to test their skills and tools in a legal environment, help web developers better understand the processes of securing web applications and to aid both students & teachers to learn about web application security in a controlled class room environment.

一直从事 Web 端的应用开发,对于一些漏洞有所耳闻。终究是纸上得来终觉浅,缺乏实际操作总感觉理解不深刻,因此想利用 DVWA 好好学习实践一下,也记录下自己的理解和学习过程。本次就先从安装环境开始吧XD。

DVWA 运行在 LAMP 环境,也就是需要安装下 Linux,Apache,MySQL,PHP。这里需要注意的是,此时的安装不是我们搞开发时环境的安装,不是版本比较新的就是好的。即使版本老一些,能用就可以了。毕竟我们的目的是使用 DVWA 来学习,不是开发 DVWA 。之前一直想配置 MySQL 5.7 和 PHP7,结果踩了不少坑也没有配好。因此本文环境的搭建主要目标是快速和方便,尽量采用 yum 安装的方式

各个组件的版本号为 CentOS 7.9,Apahce 2.4.6,MySQL 5.5.62,PHP 5.4。

Damn Vulnerable Web Application is damn vulnerable! Do not upload it to your hosting provider's public html folder or any Internet facing servers, as they will be compromised. It is recommended using a virtual machine (such as VirtualBox or VMware), which is set to NAT networking mode.

!!!应尽量在虚拟机中进行,不要放在 公网服务器上 或 对外暴露,以免造成不必要的风险。!!!

0. 前置准备

虚拟机安装 CentOS 和 更换软件源有较多文章,就不在此展开了。

新装的 CentOS 7.9 中,防火墙 和 SELinux 默认是开启的,这个会造成后续操作的不便,如 阻止从外部连接 Apache 和 MySQL,阻止 PHP 连接数据库,因此需要先关闭这两个:

// 关闭防火墙
> systemctl stop firewalld.service
// 禁用防火墙自启动
> systemctl disable firewalld.service // 临时关闭 SELinux
> setenforce 0
// 永久关闭
> vi /etc/selinux/config
SELINUX=enforcing 改为 SELINUX=disabled

1. 安装 Apache

这个比较简单,直接使用如下命令即可:

// 安装
> yum install -y httpd // 启动
> systemctl start httpd

2. 安装 MySQL 5.5

A. 安装下载工具 wget

> yum install -y wget

B. 删除原有的 MariaDB 相关内容

> yum -y remove maria*

C. 开始安装

先找到安装包的链接,打开 MySQL 的网站。由于我们下载的是早已过时的版本,因此点击右下角的 Download Archives,点击 MySQL Community Server

选择版本和操作系统后会自动筛选,我们下载 MySQL ServerClient Utilities 即可,命令为:

// 下载
> wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-server-5.5.62-1.el7.x86_64.rpm
> wget https://downloads.mysql.com/archives/get/p/23/file/MySQL-client-5.5.62-1.el7.x86_64.rpm // 安装
> yum install -y MySQL-server-5.5.62-1.el7.x86_64.rpm
> yum install -y MySQL-client-5.5.62-1.el7.x86_64.rpm

D. 启动与配置

// 启动 MySQL
> systemctl start mysql
// 开机自启动 MySQL
> systemctl enable mysql

之后输入命令 mysql -u root 并回车,进入 mysql shell 设置密码:

# mysql shell 中

// 设置密码为 123456
> set password=password('123456'); // 设置可以从任意 ip 以 root 身份访问(注意密码要与之前的一致)
> grant all privileges on *.* to 'root'@'%' identified by '123456';
// 刷新权限
> flush privileges;

使用 exit 退出 mysql shell,并重启 mysql 服务:

> systemctl restart mysql

此时尝试一下,就可以在外部访问了。

!!!只针对 MySQL 5.5,更高的版本操作步骤不完全相同!!!

One More Thing

如果某一天这个包不想要了,想要卸载。可以先执行命令查找要卸载的包:

> rpm -qa | grep -i mysql

// 命令结果:
// MySQL-server-5.5.62-1.el7.x86_64
// MySQL-client-5.5.62-1.el7.x86_64

此时如果傻傻地输入 yum erase MySQL-server-5.5.62-1.el7.x86_64 可就大错特多了。因为后面是版本号,真正的包名是 MySQL-server,因此要使用命令卸载

> yum erase MySQL-server
> yum erase MySQL-client

3. 安装 PHP 5.4

使用命令安装即可:

> yum install -y php php-pdo php-mysqlnd php-cli php-gd

4. 设置 DVWA 项目

使用自己喜欢的方式,下载 DVWA 项目 并拷贝到 Apache 的目录 /var/www/html 下,类似与拷贝网页到 WEB 服务器。之后拷贝一份配置模板:

// 拷贝配置模板
> cp /var/www/html/config/config.inc.php.dist /var/www/html/config/config.inc.php

使用 vim 修改对应的数据库配置:

此时访问下 DVWA 首页,可以看到网站已经基本可以运行了。

点击左侧的 Setup/Reset DB,进行数据库的初始化操作。发现还有很多标注为红色的警告需要对应处理下:

可以看到问题有:

a. 禁用了 PHP 的 allow_url_include 函数

b. reCAPTCHA key 未配置(谷歌的验证码服务,暂时不配置)

c. 目录 /var/www/html/hackable/uploads 和 /var/www/html/config 没有写入权限,文件 /var/www/html/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt 没有写入权限

A. 再配置 PHP

使用 vim 修改 /etc/php.ini,查找 allow_url_include 并修改为 On

B. 再配置文件系统

// 添加写入权限
> chmod a+w /var/www/html/hackable/uploads
> chmod a+w /var/www/html/config
> chmod a+w /var/www/html/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt // 配置完成后需要重启 httpd
> systemctl restart httpd

刷新页面,可以看到(除了二维码)配置都已经没有问题了。

点击下方 Create / Reset Database 按钮,可以看到提示成功了。

左侧有很多典型的漏洞项目,可以使用页面上方提示的 用户名:admin,密码 password 愉快de玩耍了XD。如果要调整难度,可以通过左侧的 DVWA Security 操作。

5. 后记

开始的时候安装 PHP 和 Apache 遇到了很多坑,在这里简单描(tu)述(cao)一下吧。一开始是使用 yum 安装的 httpd,之后安装 PHP7 时,也是添加软件源后使用 yum 安装的,但是好像只安装了 Apache httpd 的一个模块。php -v 命令无法运行,而且无法连接数据库。之后查到的都是使用源码编译安装,而且编译时 php 的配置也各不相同,似乎还需要以源码编译的方式安装 Apache httpd。感觉过于复杂,后来看到一篇文章,里面使用 PHP5 也可以运行 DVWA,因此转变思路,使用低版本软件。

参考:

DVWA GitHub

关闭 SELinux

CentOS7防火墙关闭

CentOS7安装mysql5.5

mysql 远程 error 2002,远程服务器的phpmyadmin 2002错误

1 Way To Install DVWA On CentOS 7

DVWA靶场搭建

Centos7源码安装mysql55+apache+php7(php-fpm)

Linux下PHP7安装与Apache配置

linux yum查看已安装包,查看yum已安装的包

Web安全—LAMP搭建PHP网站(持续完善)

yum httpd php7_Centos 7利用yum安装apache+mysql 8+php7 一篇搞定!

DVWA系列1:搭建 DVWA 环境的更多相关文章

  1. Android开发系列之搭建开发环境

    接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工 ...

  2. python cookie登录DVWA,phpstudy搭建DVWA参考https://www.jianshu.com/p/97d874548300

    import requestsheader={"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleW ...

  3. 如何在本地搭建DVWA环境

    如何在本地搭建DVWA环境 1.工具下载:  (1)phpStudy:   http://phpstudy.php.cn/download.html (2)DVWA:http://www.dvwa.c ...

  4. kali 2.0下搭建DVWA环境

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常 ...

  5. kali linux 2.0下搭建DVWA渗透测试演练平台

    DVWA (Dam Vulnerable Web Application)DVWA是用PHP+MySQL编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常 ...

  6. DVWA系列精品教程:2、命令注入

    文章更新于:2020-04-11 注:如何搭建环境参见:搭建DVWA Web渗透测试靶场 DVWA之命令注入漏洞 一.介绍 1.1.官方说明 1.2.总结 二.命令注入实践 2.1.安全级别:LOW ...

  7. 搭建DVWA Web渗透测试靶场

    文章更新于:2020-04-13 按照惯例,需要的文件附上链接放在文首. 文件名:DVWA-1.9-2020.zip 文件大小:1.3 M 文件说明:这个是新版 v1.9 (其实是 v1.10开发版) ...

  8. 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

    引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...

  9. SpringCloud系列二:Restful 基础架构(搭建项目环境、创建 Dept 微服务、客户端调用微服务)

    1.概念:Restful 基础架构 2.具体内容 对于 Rest 基础架构实现处理是 SpringCloud 核心所在,其基本操作形式在 SpringBoot 之中已经有了明确的讲解,那么本次为 了清 ...

  10. [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境

    [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...

随机推荐

  1. v-debounce-throttle是一个vue防抖节流指令

    v-debounce-throttle是一个vue防抖节流指令 简介 v-debounce-throttle是一个vue防抖节流指令,控制单一事件的触发频率.其核心是拦截组件元素的v-on绑定事件,采 ...

  2. Day2.1

    HelloWorld 随便新建一个文件夹,存放代码 新建一个java文件 文件后缀名为.java Hello.java 注意:系统可能没有显示文件名后缀,我们需要手动打开 编写代码 public cl ...

  3. js中对小数的计算

    在js 的计算中如果涉及到小数的运算,那结果可不要想当然了,比如  0.1+0.2 的计算 var num1 = 0.1; var num2 = 0.2; console.log(num1+num2) ...

  4. Java环境搭建(推荐jdk8)

    本人使用的Windows10操作系统 1.Jdk8下载和安装 下载地址:https://www.oracle.com/cn/java/technologies/javase/javase-jdk8-d ...

  5. Seata Server 1.5.2 源码学习

    Seata 包括 Server端和Client端.Seata中有三种角色:TC.TM.RM,其中,Server端就是TC,TM和RM属Client端.Client端的源码学习上一篇已讲过,详见 < ...

  6. springboot集成支付宝的支付(通用版)

    [1.引依赖] <dependency> <groupId>com.alipay.sdk</groupId> <artifactId>alipay-sd ...

  7. 阿里云 ACK 接入观测云

    简介 容器服务 Kubernetes 版(简称 ACK)提供高性能可伸缩的容器应用管理能力,支持企业级容器化应用的全生命周期管理.2021 年成为国内唯一连续三年入选 Gartner 公共云容器报告的 ...

  8. Spring Cloud Gateway 使用示例

    Spring Cloud Gateway 使用示例 作者: Grey 原文地址: 博客园:Spring Cloud Gateway 使用示例 CSDN:Spring Cloud Gateway 使用示 ...

  9. IDEA把项目推送到Gitee

    1.在gitee注册账户:QQ注册就是:QQ邮箱和密码 2.新建一个自己的仓库 3.打开本地的IDEA中的项目 4.添加git项目标记||前提都是IDEA已关联你的GIt软件 5.查看git项目标记是 ...

  10. qtcreator修改界面但是没有更新

    原因 我之前修改了项目名(简单的修改文件夹和.pro文件名),但是项目构建的位置还是之前目录. 解决 将 build directory改为新的目录即可.