DVWA系列1:搭建 DVWA 环境
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 Server 和 Client 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 环境的更多相关文章
- Android开发系列之搭建开发环境
接触Android好久了,记得09年刚在中国大陆有点苗头的时候,我就知道了google有个Android,它是智能机操作系统.后来在Android出1.5版本之后,我第一时间下载了eclipse开发工 ...
- 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 ...
- 如何在本地搭建DVWA环境
如何在本地搭建DVWA环境 1.工具下载: (1)phpStudy: http://phpstudy.php.cn/download.html (2)DVWA:http://www.dvwa.c ...
- kali 2.0下搭建DVWA环境
DVWA (Dam Vulnerable Web Application)DVWA是用PHP+Mysql编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常 ...
- kali linux 2.0下搭建DVWA渗透测试演练平台
DVWA (Dam Vulnerable Web Application)DVWA是用PHP+MySQL编写的一套用于常规WEB漏洞教学和检测的WEB脆弱性测试程序.包含了SQL注入.XSS.盲注等常 ...
- DVWA系列精品教程:2、命令注入
文章更新于:2020-04-11 注:如何搭建环境参见:搭建DVWA Web渗透测试靶场 DVWA之命令注入漏洞 一.介绍 1.1.官方说明 1.2.总结 二.命令注入实践 2.1.安全级别:LOW ...
- 搭建DVWA Web渗透测试靶场
文章更新于:2020-04-13 按照惯例,需要的文件附上链接放在文首. 文件名:DVWA-1.9-2020.zip 文件大小:1.3 M 文件说明:这个是新版 v1.9 (其实是 v1.10开发版) ...
- 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)
引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...
- SpringCloud系列二:Restful 基础架构(搭建项目环境、创建 Dept 微服务、客户端调用微服务)
1.概念:Restful 基础架构 2.具体内容 对于 Rest 基础架构实现处理是 SpringCloud 核心所在,其基本操作形式在 SpringBoot 之中已经有了明确的讲解,那么本次为 了清 ...
- [.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境
[.net 面向对象程序设计进阶] (25) 团队开发利器(四)分布式版本控制系统Git——使用GitStack+TortoiseGit 图形界面搭建Git环境 本篇导读: 前面介绍了两款代码管理工具 ...
随机推荐
- 使用 etcdadm 快速、弹性部署 etcd 集群
Etcd 是一个可靠的分布式键值存储, 常用于分布式系统关键数据的存储:而 etcdadm 是一个用于操作 etcd 集群的命令行工具,它可以轻松创建集群.向现有集群添加成员.从现有集群中删除成员等操 ...
- 知识图谱-生物信息学-医学顶刊论文(Bioinformatics-2021)-MUFFIN:用于DDI预测的多尺度特征融合
2.(2021.3.15)Bioinformatics-MUFFIN:用于DDI预测的多尺度特征融合 论文标题: MUFFIN: multi-scale feature fusion for drug ...
- 第二阶段:高级核心基础知识·第1章Linux三剑客·1
1.用vmware添加一块10G的硬盘,且永久挂载到/data01中,写出详细的步骤 2.用自己语言描述raid0和raid1的区别 RAID 0: 将两个或以上相同信号,容量的硬盘组合,磁盘阵列的总 ...
- JavaWeb2
1. web服务器软件:Tomcat 1.1 概述 服务器:安装了服务器软件的计算机 服务器软件:接受用户的请求,处理请求,做出响应 web服务器软件:接受用户的请求,处理请求,做出响应 在web服务 ...
- 新建Maui工程运行到IiOS物理设备提示 Could not find any available provisioning profiles for iOS 处理办法
在构建 MAUI App 或 MAUI Blazor 时,您可能会收到以下 Could not find any available provisioning profiles for iOS. Pl ...
- TypeScript(基础篇)day01
一.TS介绍 1.1 简介 ts是2012年由微软开发,在js的基础上添加了类型支持 1.2 优劣势 优势 :任何位置都有代码提示,增加效率:类型系统重构更容易:使用最新的ECMAscript语法 劣 ...
- 基于python的数学建模---二维插值的三维图
import numpy as np from mpl_toolkits.mplot3d import Axes3D import matplotlib as mpl from scipy impor ...
- 关于更改 lightdm 主题的方法
lightdm 是一个显示管理器,它支持很多种 greeter lightdm 的主要配置文件都在 /etc/lightdm 目录下面 各个文件的作用: 配置文件名称 作用 图形化界面配置工具 lig ...
- postgresql函数:定期删除模式下指定天数前的表数据及分区物理表
一.现有函数-- 1.现有函数调用select ods.deletePartitionIfExists('fact_ship' || '_' || to_char(CURRENT_DATE - INT ...
- 【HBase】简介、结构、数据模型、快速入门部署、shell操作、架构原理、读写数据流程、数据刷写、压缩、分割、Phoenix、表的映射、与hive集成、优化
一.简介 1.定义 分布式.可扩展.支持海量数据存储的NoSQL数据库 2.数据模型 2.1逻辑结构 2.2物理存储结构 2.3数据模型介绍 Name Space:相当于数据库,包含很多张表 Regi ...