当前位置: 首页 > news >正文

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例)

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例)

在这里插入图片描述

一、DVWA靶场简介

DVWA(Damn Vulnerable Web Application)是专为网络安全学习者设计的漏洞演练平台,包含SQL注入、XSS、文件包含等10大Web漏洞模块,采用PHP+MySQL架构,非常适合用于:

  • Web安全漏洞原理学习
  • 渗透测试技能实战演练
  • 安全工具(BurpSuite、sqlmap等)实战测试

二、环境准备(Ubuntu 20.04/22.04)

1. 更新系统源

sudo apt update && sudo apt upgrade -y

2. 安装LAMP环境

sudo apt install -y apache2 mysql-server php libapache2-mod-php php-mysql

3. 安装必要扩展

sudo apt install -y php-gd php-curl php-zip php-mbstring php-xml

三、DVWA部署流程(详细步骤)

1. 下载DVWA源码

cd /var/www/html
sudo wget https://githubfast.com/digininja/DVWA/archive/master.zip
sudo unzip master.zip
sudo mv DVWA-master dvwa
sudo rm master.zip

2. 配置数据库

#启动mysql
sudo systemctl start mysql
#查看状态
sudo systemctl status mysql
#开机服务启动
sudo systemctl enable mysqlsudo mysql -u root -p
> CREATE DATABASE dvwa;
> CREATE USER 'dvwa_user'@'localhost' IDENTIFIED BY 'P@ssw0rd';
> GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa_user'@'localhost';
> FLUSH PRIVILEGES;
> exit#docker单独安装mysql数据库(可选)
docker pull swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0.39
#启动(可选)
docker run --name mysql_test -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 -d swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0.39
#进入(可选)
docker exec -it mysql_test mysql -uroot -p

3. 修改配置文件

cd dvwa/config
sudo cp config.inc.php.dist config.inc.php
sudo nano config.inc.php

修改以下参数:

$_DVWA['db_user'] = 'dvwa_user';
$_DVWA['db_password'] = 'p@ssw0rd';$_DVWA[ 'recaptcha_public_key' ]  = getenv('RECAPTCHA_PUBLIC_KEY') ?: '6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb';
$_DVWA[ 'recaptcha_private_key' ] = getenv('RECAPTCHA_PRIVATE_KEY') ?: '6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4Kwq';

数据库修改:

在这里插入图片描述

配置key:

在这里插入图片描述

4. 设置文件权限

sudo chmod -R 755 /var/www/html/dvwa
sudo chown -R www-data:www-data /var/www/html/dvwa

5. 重启服务

#启用mod_rewrite
sudo a2enmod rewrite#修改vim /etc/php/8.3/apache2/php.ini
display_startup_errors = On
#如果没有则添加
display_errors = On#允许远程文件访问
allow_url_fopen = On
allow_url_include = Onsudo systemctl restart apache2 #检查状态
systemctl status apache2#查看报错日志
tail -f /var/log/apache2/error.log

四、访问与初始化

  1. 浏览器访问 http://localhost/dvwa
  2. 点击"Create / Reset Database"初始化数据库:
  3. 使用默认账号登录:
    • 用户名:admin
    • 密码:password

登录界面:

在这里插入图片描述

五、常见问题排查

1. PHP函数未启用错误

解决方法:

sudo nano /etc/php/8.1/apache2/php.ini

修改以下配置:

allow_url_include = On
magic_quotes_gpc = Off

2. 数据库连接失败

检查:

  • MySQL服务状态 systemctl status mysql
  • 用户权限是否配置正确
  • 防火墙是否放行3306端口

3. 文件权限问题

重置权限命令:

sudo chmod -R 777 /var/www/html/dvwa/hackable/uploads

六、渗透测试实战示例(SQL注入)

1. 设置安全等级

将DVWA Security设为"Low"

2. SQL注入测试

访问SQL Injection页面,输入:
1' union select 1,group_concat(user,0x3a,password) from users#

3. 使用sqlmap自动化测试

sqlmap -u "http://localhost/dvwa/vulnerabilities/sqli/?id=1&Submit=Submit" --cookie="PHPSESSID=xxx; security=low" --dbs

七、安全建议

  1. 仅在本地环境搭建
  2. 定期更新系统补丁
  3. 使用完成后关闭服务
sudo systemctl stop apache2 mysql

下一篇预告: 《DVWA靶场XSS漏洞实战:从注入到Cookie劫持》

(注:实际操作请遵守网络安全法,仅在授权环境进行测试)

安全建议

  1. 仅在本地环境搭建
  2. 定期更新系统补丁
  3. 使用完成后关闭服务
sudo systemctl stop apache2 mysql

如果本教程帮助您解决了问题,请点赞❤️收藏⭐支持!欢迎在评论区留言交流技术细节!

相关文章:

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例)

【零基础实战】Ubuntu搭建DVWA漏洞靶场全流程详解(附渗透测试示例) 一、DVWA靶场简介 DVWA(Damn Vulnerable Web Application)是专为网络安全学习者设计的漏洞演练平台,包含SQL注入、XSS、文件包含等10大Web漏洞模块&…...

若依前后端分离版本从mysql切换到postgresql数据库

一、修改依赖&#xff1a; 修改admin模块pom.xml中的依赖,屏蔽或删除mysql依赖&#xff0c;增加postgresql依赖。 <!-- Mysql驱动包 --> <!--<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId> &l…...

【补题】Codeforces Round 974 (Div. 3) E. Rendez-vous de Marian et Robin

题意&#xff1a;给个图&#xff0c;两个人分别从点1和点n出发&#xff0c;问最早在哪个点可以相遇&#xff0c;其中某些点有马&#xff0c;骑上去之后可以在接下来剩余的时间内都可以将路程所需时间缩短一半。 关于题目数据见原题&#xff0c;这里说明太累了想偷懒Problem - 2…...

MySQL集群技术

当有数据时添加slave2 #从master节点备份数据 mysqldump -uroot -ptiminglee 1 > timinglee.sql 生产环境中备份时需要锁表&#xff0c;保证备份前后的数据一致 mysql> FLUSH TABLES WITH READ LOCK; 备份后再解锁 mysql> UNLOCK TABLES; mysqldump命令备份的数…...

Java 中的字节码

&#x1f50d; 什么是 Java 字节码&#xff08;Bytecode&#xff09;&#xff1f; 字节码是 Java 源码&#xff08;.java 文件&#xff09;被编译后生成的中间代码&#xff08;.class 文件&#xff09;&#xff0c;它不是机器码&#xff0c;而是一种 面向 JVM 的指令集。 可以…...

json 转 txt 用于 yolo 训练(可适用多边形标注框_python)

json 转 txt 用于 yolo 训练&#xff08;可适用多边形标注框_python&#xff09; import json import os import argparse from tqdm import tqdmdef convert_label_json(json_dir, save_dir, classes):json_paths os.listdir(json_dir)classes classes.split(,)for json_pa…...

SQL注入(SQL Injection)

目录 SQL注入(SQL Injection)是什么SQL注入的危害SQL注入的常见方式1. 经典注入(Error-Based Injection)2. 联合查询注入(Union-Based Injection)3. 时间盲注(Time-Based Blind Injection)4. 布尔盲注(Boolean-Based Blind Injection)5. 堆叠注入(Stacked Queries I…...

智慧厨房的秘密:当大模型遇见智能体

智慧厨房的秘密&#xff1a;当大模型遇见智能体 想象一下&#xff0c;一家餐厅里&#xff0c;顾客点了一份特别定制的菜肴。厨师不仅需要知道如何制作这道菜&#xff0c;还得根据当天的食材情况灵活调整配方&#xff0c;甚至考虑到顾客的口味偏好做出微调。这一切背后&#xf…...

IDEA遇到问题汇总

问题1&#xff1a;【异常】IDEA中报错&#xff1a;无效的目标发行版本 IDEA 报错&#xff1a;无效的源发行版-CSDN博客 【异常】IDEA中报错&#xff1a;无效的目标发行版本-CSDN博客 原因是&#xff1a;版本不兼容不一致&#xff0c;需要修改jdk、maven、以及目标字节码使之相一…...

状态管理组件Pinia 简介与底层原理 、Pinia 与其他状态管理库对比、Vue3 + Element Plus + Pinia 安装配置详解

一、Pinia 简介与底层原理 1. Pinia 简介 Pinia 是 Vue3 官方推荐的状态管理库&#xff0c;由 Vue 核心团队开发&#xff0c;旨在替代 Vue2 的 Vuex。其核心目标是提供一种更简洁、直观的状态管理方案&#xff0c;同时充分利用 Vue3 的响应式系统和 Composition API。 2. 底…...

本地部署 opik

本地部署 opik 1. 安装2. 访问 1. 安装 克隆代码&#xff0c; git clone https://github.com/comet-ml/opik.git使用 Docker compose 启动&#xff0c; cd opik/deployment/docker-compose docker compose up -d2. 访问 启动后&#xff0c;您可以在浏览器中访问 localhost:…...

操作系统之进程与线程的理解(一)

对进程的理解 进程是可以并发执行的程序在某个数据集合上的运行过程&#xff0c;是系统进行资源分配和调度的基本单位。进程由三部分组成&#xff0c;程序&#xff0c;数据和进程控制块&#xff08;简称PCB&#xff09;。简单的说&#xff0c;进程就是程序的一次执行 为确保进…...

JS 箭头函数

只能用于声明函数表达式更简洁。替代匿名函数 设置取消点击事件的默认行为 在这里插入图片描述...

Mb,Kb,byte,bits

1MB1024KB; 1KB1024byte(字节&#xff09;&#xff1b; 1byte8bits&#xff08;位&#xff09;&#xff1b; 小蓝准备用 256MB 的内存空间开一个数组&#xff0c;数组的每个元素都是 32 位 二进制整数&#xff0c;如果不考虑程序占用的空间和维护内存需要的辅助空间&#xf…...

x265 中 aqMode 和 hevcAq 的深度解析与应用技巧

aqMode 和 hevcAq 介绍 在 x265 中基本继承了 x264 中 aqmode 的思想,此外还引入了 hevcAq 算法工具,在 x265_param 结构体中有这两个参数变量开关相关解释。从声明注释可以理解,aqMode 和 x264 中 aqmode 的思想完全相似,也扩展了些功能,属于通用型自适应量化方法,基于 …...

(一)基于云平台微调大模型,以deepseek-coder-6.7b为例

一、租借rtx4090卡并创建示例 如下图&#xff0c;我们进入jupyter界面&#xff0c;然后创建笔记本 二、提前下载好模型到本地 为了节省时间&#xff0c;我们需要提前下好模型deepseek-ai/deepseek-coder-6.7b-instruct&#xff0c;然后再上传到autodl上直接本地加载。 下载方…...

【Docker基础】全面解析 Docker 镜像:构建、使用与管理

文章目录 一、Docker 镜像&#xff08;Docker Image&#xff09;详解1.1 Docker 镜像的结构1.2 Docker 镜像的每一层&#xff08;Layer&#xff09;1.3 镜像的构建过程1.4 镜像的使用1.5 镜像的优势 二、为什么需要镜像三、镜像命令3.1 命令清单3.2 详细解释 四、docker 操作案…...

3. git config

文章目录 基本概述配置级别基本用法设置配置项查看配置项删除配置项 常用配置项 基本概述 git config 的作用是&#xff1a;设置用户信息、编辑器、别名、仓库行为等。 配置级别 级别作用范围配置文件路径命令选项仓库级别&#xff08;Local&#xff09;当前仓库.git/config…...

docker 运行自定义化的服务-前端

运行自定义化的前端服务 具体如下&#xff1a; ①打包前端项目&#xff0c;形成dist包 ②编写dockerfile文件&#xff0c;文件内容如下&#xff1a; # 基础镜像(镜像名:版本号TAG) FROM nginx:1.0 # 镜像作者和相关元数据 LABEL maintainer"Atb" \version"1.0…...

error: RPC failed; HTTP 408 curl 22 The requested URL returned error: 408

在git push时报错&#xff1a;error: RPC failed; HTTP 408 curl 22 The requested URL returned error: 408 原因&#xff1a;可能是推送的文件太大&#xff0c;要么是缓存不够&#xff0c;要么是网络不行。 解决方法&#xff1a; 将本地 http.postBuffer 数值调整到500MB&…...

JMH 基准测试实战:Java 性能对比的正确打开方式!

&#x1f4d6; 摘要 在Java开发中&#xff0c;我们经常需要比较不同实现方式的性能差异。但如何科学、准确地进行性能测试呢&#xff1f;本文将带你深入理解JMH&#xff08;Java Microbenchmark Harness&#xff09;工具&#xff0c;通过实战演示如何正确编写和运行基准测试&a…...

etf可以T+0交易吗?

在我国的A股市场中&#xff0c;部分ETF基金支持T0交易&#xff0c;这为投资者提供了更灵活的交易策略。 支持T0交易的ETF基金类型包括&#xff1a; 货币型ETF&#xff1a;主要投资于货币市场工具&#xff0c;如短期债券和银行存款&#xff0c;具有较高的流动性。 债券型ETF&…...

解决问题:Vscode 自动更新不匹配远程服务器版本

避免自动更新&#xff1a; 1. 打开&#xff1a;文件 - 首选项 - 设置 - 应用程序 - 更新&#xff1b; 2. 设置下列选项&#xff1a; 如果已自动更新&#xff0c;如何回退至原有的历史版本 &#xff1a; 去官网下载所需的历史版本&#xff0c;然后直接按流程安装&#xff0c;…...

【Leetcode-Hot100】盛最多水的容器

题目 解答 目的是求面积最大&#xff0c;面积是由两个下标和对应的最小值得到&#xff0c;因此唯一的问题就是如何遍历这两个下标。我采用begin和end两个变量&#xff0c;确保begin是小于end的&#xff0c;使用它们二者求面积&#xff0c;代码如下&#xff1a; 很不幸 出错了…...

FFMEPG常见命令查询

基本参数 表格1&#xff1a;主要参数 参数说明-i设定输入流-f设定输出格式(format) 高于后缀名-ss开始时间-t时间长度codec编解码 表格2&#xff1a;音频参数 参数说明-aframes设置要输出的音频帧数-f音频帧深度-b:a音频码率-ar设定采样率-ac设定声音的Channel数-acodec设定…...

欢迎来到 Codigger Store:Boby周边专区

亲爱的 Codigger 用户们&#xff0c;感谢你们一直以来的支持与热爱&#xff01;你们的每一次代码跳跃、每一次项目成功&#xff0c;都离不开你们对编程的热情和对 Codigger 的信任。为了回馈大家的厚爱&#xff0c;我们在 Codigger Store 中特别开设了 Boby 周边专区&#xff0…...

决策树模型

决策树(TDS) 注意1&#xff1a;决策树有很多种算法&#xff0c;比如&#xff1a;ID3算法&#xff0c;C4.5算法&#xff0c;CART算法&#xff0c;这三个算法的区别是选择最优划分属性的方法不同&#xff0c;第一个是根据信息增益来选&#xff1b;第二个是找出信息增益高于平均水…...

解锁深度学习激活函数

在深度学习的广袤天地里&#xff0c;激活函数宛如隐匿于神经网络架构中的神奇密码&#xff0c;掌控着模型学习与表达的关键力量。今天&#xff0c;就让我们一同深入探究这些激活函数的奇妙世界&#xff0c;揭开它们神秘的面纱。 一、激活函数为何不可或缺&#xff1f; 想象一…...

Kubernetes 深入浅出系列 | 容器剖析之容器安全

目录 1、容器真的需要privileged权限吗?一、什么是 --privileged 权限&#xff1f;二、privileged 的风险到底有多大&#xff1f;三、常见需求场景及更安全的替代方式四、如何判断容器是否真正需要特权&#xff1f; 2、不以 Root 用户运行容器&#xff0c;真的更安全吗&#x…...

Spring Boot应用中可能出现的Full GC问题

Full GC的原理与触发条件 原理 标记-清除&#xff1a;首先遍历所有对象&#xff0c;标记可达的对象&#xff0c;然后清除不可达的对象。复制算法&#xff1a;将内存分为两部分&#xff0c;每次只使用其中一部分。当这部分内存用完时&#xff0c;将存活的对象复制到另一部分&a…...

Maven 的安装与配置(IDEA)

2025/4/9 向 一、什么是Maven Maven 是一个基于项目对象模型&#xff08;Project Object Model&#xff0c;POM&#xff09;概念的项目构建工具&#xff08;所以就是一个工具&#xff09;&#xff0c;它主要用于自动化项目的构建过程&#xff0c;包括编译、测试、打包、部署等…...

软考中级-软件设计师 2022年下半年上午题真题解析:通关秘籍+避坑指南

&#x1f4da; 目录&#xff08;快速跳转&#xff09; 选择题&#xff08;上午题&#xff09;&#xff08;每题1分&#xff0c;共75分&#xff09;一、 计算机系统基础知识 &#x1f5a5;️&#x1f4bb; 题目1&#xff1a;计算机硬件基础知识 - RISC&#xff08;精简指令集计算…...

全栈开发套件Telerik DevCraft——赋能现代化应用构建

Telerik DevCraft包含一个完整的产品栈来构建您下一个Web、移动和桌面应用程序。它使用HTML和每个.NET平台的UI库&#xff0c;加快开发速度。Telerik DevCraft提供完整的工具箱&#xff0c;用于构建现代和面向未来的业务应用程序&#xff0c;目前提供UI for ASP.NET MVC、Kendo…...

Windows + vmware + ubuntu+docker + docker-android实现Android模拟器构建和启动

文章目录 引言编译启动过程玩下adb最后 引言 Windows vmware ubuntudockerdocker-android实现Android模拟器启动 编译启动过程 #下载docker-android git clone https://github.com/budtmo/docker-android.gitmaqiubuntu:~/docker-android$ git remote -v origin https://…...

远程团队协作效率低,如何优化

在远程工作的环境中&#xff0c;团队协作效率低下成为许多企业面临的一大挑战。随着全球化和技术进步&#xff0c;远程团队的出现成为企业的常态&#xff0c;但由于沟通不畅、任务管理不明确、缺乏团队凝聚力等问题&#xff0c;往往会影响团队的整体效率。为了优化远程团队的协…...

Oracle 19C 通过 ODBC 连接 SQL Server 数据库指南 (Red Hat 7)

前言 本指南详细说明如何在 Red Hat Enterprise Linux 7 系统上配置 Oracle 19C 通过 ODBC 连接 SQL Server 数据库。这种异构数据库连接方式称为 Oracle Heterogeneous Services,允许 Oracle 数据库直接访问非 Oracle 数据源。 系统要求 操作系统:Red Hat Enterprise Linu…...

【MYSQL从入门到精通】数据类型及建表

一些基础操作语句 1.使用客户端工具连接数据库服务器&#xff1a;mysql -uroot -p 2.查看所有数据库&#xff1a;show databases; 3.创建属于自己的数据库&#xff1a; create database 数据库名;create database if not exists 数据库名; 强烈建议大家在建立数据库时指定编…...

鸿蒙开发中的并发与多线程

文章目录 前言异步并发 (Promise和async/await)多线程并发并发能力选择耗时任务并发执行场景常见业务场景 常驻任务并发执行场景常见业务场景 传统共享内存并发业务长时任务并发执行场景常见业务场景 并发任务管理线程间通信同语言线程间通信&#xff08;ArkTS内&#xff09;线…...

ruby self

在 Ruby 中&#xff0c;self 是一个指向当前对象的特殊变量&#xff0c;它的值根据代码的上下文动态变化。理解 self 的指向是掌握 Ruby 面向对象编程的关键。以下是详细解析&#xff1a; 一、self 的核心规则 self 始终指向当前方法的执行者&#xff08;即调用方法的对象&…...

Kotlin 学习-集合

/*** kotlin 集合* List:是一个有序列表&#xff0c;可通过索引&#xff08;下标&#xff09;访问元素。元素可以在list中出现多次、元素可重复* Set:是元素唯一的集合。一般来说 set中的元素顺序并不重要、无序集合* Map:&#xff08;字典&#xff09;是一组键值对。键是唯一的…...

封装方法的辨析

equals //字符串 str1.equals(str2); //list的两个实现类 list1.equals(list2); //map的两个实现类 //比较所有的键值对是否相同 map1.equals(map2); //数组&#xff08;包括string类型&#xff09; //比较内容是否相同 Arrays.equals(array1, array2); contains 基本都有…...

解决 IntelliJ IDEA 中 Maven 项目左侧项目视图未显示顶层目录问题的详细步骤说明

以下是解决 IntelliJ IDEA 中 Maven 项目左侧项目视图未显示顶层目录问题的详细步骤说明&#xff1a; 1. 切换项目视图模式 默认情况下&#xff0c;IDEA 的项目视图可能处于 Packages 模式&#xff0c;仅显示代码包结构&#xff0c;而非物理目录。 操作步骤&#xff1a; 点击…...

CMIP6数据分析与可视化、降尺度技术与气候变化的区域影响、极端气候分析

当前的CMIP6计划相较于前代模型&#xff0c;在空间分辨率、物理过程表达和地球系统组件耦合等方面均有显著提升。 一&#xff1a;气候变化研究的AI新视角 1、气候模型基础与全球气候模型&#xff08;GCM&#xff09; 全球气候&#xff08;环流&#xff09;模型的基本原理、发…...

如何精准控制大模型的推理深度

论文标题 ThinkEdit: Interpretable Weight Editing to Mitigate Overly Short Thinking in Reasoning Models 论文地址 https://arxiv.org/pdf/2503.22048 代码地址 https://github.com/Trustworthy-ML-Lab/ThinkEdit 作者背景 加州大学圣迭戈分校 动机 链式推理能显…...

1. Git 下载和安装

文章目录 Git 下载Git 安装&#xff08;以windows为例&#xff09;Git 使用&#xff08;以windows为例&#xff09; Git 下载 1.进 Git 官网 https://git-scm.com/downloads 2.选择对应的操作系统 3.选择对应的操作系统位数 Git 安装&#xff08;以windows为例&#xff09;…...

git回滚指定版本并操作

你可以通过以下步骤切换到第三个版本。根据你的需求&#xff0c;有两种主要方法&#xff1a; 方法 1&#xff1a;临时查看第三个版本&#xff08;不修改当前分支&#xff09; 适用于仅查看或测试旧版本&#xff0c;不保留后续修改&#xff1a; 找到第三个版本的提交哈希&#…...

FastAdmin和thinkPHP学习文档

介绍 - FastAdmin框架文档 - FastAdmin开发文档https://doc.fastadmin.net/doc目录结构 ThinkPHP5.0完全开发手册 看云ThinkPHP V5.0是一个为API开发而设计的高性能框架——是一个颠覆和重构版本&#xff0c;采用全新的架构思想&#xff0c;引入了很多的PHP新特性&#xff0c…...

通过HTTP协议实现Git免密操作的解决方案

工作中会遇到这样的问题的。 通过HTTP协议实现Git免密操作的解决方案 方法一&#xff1a;启用全局凭据存储&#xff08;推荐&#xff09; 配置凭证存储‌ 执行以下命令&#xff0c;让Git永久保存账号密码&#xff08;首次操作后生效&#xff09;&#xff1a; git config --g…...

git 查看某一文件夹下所有文件 修改记录

git: 如何查询某个文件或者某个目录的更新历史_git 查看指定文件夹的记录-CSDN博客 git log --follow path/to/your/file git log -p --follow path/to/your/file git log --stat --follow path/to/your/file这是最常用的方法&#xff0c;可以显示指定文件的所有提交历史…...

测试(一)

软件的生命周期&#xff1a; 需求分析——计划——设计——编码——测试——运行维护 常见的开发模型&#xff1a; 瀑布模型&#xff1a; 最基本的开发模型&#xff0c;绝大多数开发模型的基本框架。 特点&#xff1a;线性的开发流程 使用场景&#xff1a;需求固定&#xff…...