声明:本文搭建的DVWA仅用于个人安全学习,仅限本机/内网环境测试,禁止用于未授权的网站渗透、攻击行为,一切违规操作后果自行承担。
一、前言
DVWA(Damn Vulnerable Web Application)是Web安全入门必刷的漏洞靶场,集成SQL注入、XSS跨站、CSRF、文件上传等经典漏洞,支持低/中/高难度切换,非常适合新手理解漏洞原理。
通常我们在电脑虚拟机部署DVWA,今天教大家用安卓手机+Termux,直接在手机上搭建完整DVWA环境,旧手机也能当作随身安全练习靶场。
环境准备
1. 安卓手机(推荐Android 8及以上,一加、小米、红米均可,不需要Root)
2. Termux安装包(官方Github/F-Droid下载,不要从应用商店的阉割版Termux)
【Termux 超全详解:无需Root!安卓手机变身掌上Linux开发机 - CSDN App】
3. 手机网络:全程建议WiFi,下载代码包需要网络
二、步骤1:初始化Termux,更新软件源
打开Termux,依次执行下面命令,更新包管理器:pkg update && pkg upgrade -y
如果提示选择 [Y/n] 全部输入 y 回车。
三、步骤2:安装LAMP环境(Apache+PHP+MariaDB)
DVWA需要Web服务、PHP、数据库,一键安装全套依赖:pkg install apache2 php php-apache mariadb git nano -y
安装完成后,开启PHP的mysqli扩展(DVWA数据库依赖)
echo "extension=mysqli.so" >> $PREFIX/etc/php/php.ini
四、步骤3:下载DVWA源码,部署到网站根目录
1. 克隆DVWA官方仓库到apache网页目录
git clone https://github.com/digininja/DVWA.git $PREFIX/share/apache2/htdocs/dvwa
2. 复制默认配置文件(重要!dvwa需要config.inc.php)
cp$PREFIX/share/apache2/htdocs/dvwa/config/config.inc.php.dist $PREFIX/share/apache2/htdocs/dvwa/config/config.inc.php
3. 修改DVWA配置文件,设置数据库账号密码
nano $PREFIX/share/apache2/htdocs/dvwa/config/config.inc.php
进入nano编辑器,找到这两行:
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = '';
把密码改为自定义密码,示例:
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = '123456';
(快捷键: Ctrl+O 保存,回车确认, Ctrl+X 退出nano。)
五、步骤4:初始化MariaDB数据库,创建dvwa库
1. 启动mariadb并初始化数据库
mysqld_safe --skip-grant-tables &
2. 进入mysql命令行,设置root密码,新建dvwa数据库
mysql -u root
依次执行下面SQL语句(每一行回车)
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
CREATE DATABASE dvwa;
exit;
(注意:密码 123456 要和上面dvwa配置文件里写的保持一致。)
六、步骤5:启动Apache网页服务,访问DVWA
apachectl start
打开手机浏览器,访问地址:
http://127.0.0.1:8080/dvwa
(注意:Termux的apache默认端口是8080,不是80!)
进入页面后点击【Create/Reset Database】,数据库创建完成。
默认账号密码:
- 账号: admin
- 密码: password
登录成功!就可以切换安全等级(Low/Medium/High),练习SQL注入、XSS、文件上传等漏洞。
七、后续使用&常见问题
每次使用DVWA需要执行的启动命令
# 启动数据库
mysqld_safe --skip-grant-tables &
# 启动apache
apachectl start
浏览器访问 http://127.0.0.1:8080/dvwa
常见报错排查
1. 页面空白 / PHP代码直接显示出来
解决:php-apache没装好,或者mysqli扩展没有写入php.ini,重新执行 echo "extension=mysqli.so" >> $PREFIX/etc/php/php.ini
2. 数据库连接失败
核对config.inc.php的数据库账号密码,确认mariadb已经正常启动,dvwa数据库已创建。
3. git克隆超时失败
可以手动下载DVWA压缩包,放到 $PREFIX/share/apache2/htdocs/ 解压。
停止服务
apachectl stop
pkill mysqld
八、收尾&学习提示
1. DVWA默认Low难度适合新手,熟悉原理后切换Medium、High,学习WAF防护、过滤绕过。
2. 手机屏幕小,写payload不方便,可以搭配小黄鸟(HttpCanary)抓包辅助练习。
3. 仅本地学习,不要对公网IP、外网网站进行测试,遵守网络安全法规。
避坑小节
❗避坑1:不要用国内应用商店的Termux,版本老旧,会出现pkg命令失效,必须用F-Droid/Github原版Termux。
❗避坑2:手机休眠会自动杀死Termux进程,长时间练习建议关闭电池优化,允许Termux后台运行。
❗避坑3:端口8080占用,执行 apachectl stop 关闭占用进程,再重新start。

转载自 CSDN-专业IT技术社区
原文链接:https://blog.csdn.net/2601_96911824/article/details/167220282




