相关错误解决:
数据库不能用
3306端口改成3307,端口占用了
出现下面这种错误,RSRF token换个浏览器,可能是插件的问题
登录这个网站:
DVWA Security :: Damn Vulnerable Web Application (DVWA)账号:admin
密码:password

phpStudy解决mysql 启动后又自动关闭问题方法_php的mysql开启后自动关闭-CSDN博客
网站漏洞基础与DVWA靶场搭建完整笔记
一、网站安全概述与攻击价值
1.1 为什么重点攻击网站?
- 数量庞大:从政府、企业到个人、学校,几乎每个组织都有网站
- 暴露面广:互联网中网站是最常见的数字资产
- 攻击回报高:类比Windows与Mac攻击选择,数量决定攻击频率
- 持续更新:新技术不断应用,带来新漏洞可能性
1.2 OWASP组织与安全报告
- OWASP:开放式Web应用程序安全项目组织
- 功能:提供Web应用安全标准、工具、文档
- TOP 10报告:每3年发布一次Web应用十大安全威胁
- 2021年报告重点:包括注入、失效的身份验证、敏感数据泄露等
二、常见网站漏洞类型概览
2.1 主要漏洞类型清单
| 漏洞类型 | 简要描述 | 潜在影响 |
|---|---|---|
| SQL注入 | 数据库查询漏洞,可操作数据库 | 数据泄露、篡改、删除 |
| 命令执行(RCE) | 执行操作系统命令的权限 | 完全控制服务器 |
| 文件上传 | 上传恶意文件到服务器 | 后门植入、控制服务器 |
| XSS跨站脚本 | 客户端脚本注入 | 窃取Cookie、钓鱼攻击 |
| CSRF跨站请求伪造 | 伪造用户请求 | 执行非授权操作 |
| 文件包含 | 包含并执行任意文件 | 代码执行、信息泄露 |
| 越权访问 | 访问未授权资源 | 数据泄露、功能滥用 |
| 逻辑漏洞 | 业务逻辑缺陷 | 业务损失、欺诈 |
| 信息泄露 | 敏感信息暴露 | 数据泄露、辅助攻击 |
2.2 本周重点讲解的三个漏洞
SQL注入
- 目标:数据库
- 危害 :
- 读取敏感数据(用户名、密码、个人信息)
- 修改、删除数据库内容
- 获取服务器控制权
- 原理:恶意SQL代码注入到合法查询中
命令执行(RCE)
- 目标:服务器操作系统
- 危害 :
- 执行任意系统命令
- 控制整个服务器
- 关机、删除文件、安装后门
- 原理:程序未过滤用户输入,直接传递给系统执行
文件上传
- 目标:服务器文件系统
- 危害 :
- 上传Webshell(后门)
- 控制网站甚至服务器
- 作为跳板进行内网渗透
- 原理:未对上传文件类型、内容进行充分验证
三、DVWA靶场介绍与价值
3.1 DVWA是什么?
- 全称:Damn Vulnerable Web Application
- 开发者:OWASP组织成员
- 性质:专门设计用于安全学习的漏洞练习平台
- 语言:基于PHP编写
- 特点:包含从易到难多个安全等级
3.2 使用靶场的必要性
- 法律安全:避免未经授权攻击真实网站的法律风险
- 学习效率:集中学习各种漏洞原理与利用方法
- 可控环境:可反复测试,不会造成实际损害
- 标准化:行业通用,便于交流学习
四、DVWA靶场搭建详细步骤
4.1 环境准备清单
必备软件:
1. PHP运行环境 (推荐PHPStudy)_我下的是9.1
2. DVWA源代码
3. 解压软件 (WinRAR/7-Zip)
4. 文本编辑器 (记事本即可)
系统要求:
- Windows操作系统
- 管理员权限
- 约500MB磁盘空间
4.2 WAMP环境说明
- W:Windows操作系统
- A:Apache Web服务器
- M:MySQL数据库
- P:PHP脚本语言
为什么选择PHPStudy?
- 集成WAMP所有组件
- 一键安装配置
- 适合初学者
- 中文界面友好
4.3 详细搭建步骤
步骤1:下载PHPStudy
bash
# 下载方式:
1. 访问官网:https://www.xp.cn/
2. 选择"PHPStudy"版本
3. 下载2018版(界面更传统,适合学习)
4. 保存到本地磁盘
步骤2:安装PHPStudy
bash
# 安装过程:
1. 解压下载的压缩包
2. 双击安装程序
3. 选择安装路径(建议D:\phpstudy)
4. 等待安装完成
5. 无需额外配置,保持默认即可
步骤3:下载DVWA源码
bash
# 下载方式:
方法1:访问 https://github.com/digininja/DVWA
方法2:使用讲师提供的下载链接
方法3:百度搜索"DVWA下载"
# 保存位置:任意位置,记住路径即可
步骤4:部署DVWA到Web目录
bash
# 找到PHPStudy的WWW目录
路径:D:\phpstudy\PHPTutorial\WWW\
# 操作步骤:
1. 将DVWA压缩包复制到WWW目录
2. 解压到当前文件夹
3. 重命名文件夹为"dvwa"(去掉-master后缀)
4. 确保路径为:D:\phpstudy\PHPTutorial\WWW\dvwa\
步骤5:配置DVWA数据库连接
bash
# 配置文件位置:
D:\phpstudy\PHPTutorial\WWW\dvwa\config\
# 操作步骤:
1. 找到config.inc.php.dist文件
2. 重命名为config.inc.php(删除.dist后缀)
3. 用记事本打开config.inc.php
4. 修改以下两行:
$_DVWA[ 'db_user' ] = 'root'; # 数据库用户名
$_DVWA[ 'db_password' ] = 'root'; # 数据库密码
5. 保存文件
PHPStudy默认数据库信息:
- 用户名:root
- 密码:root
- 数据库服务器:localhost
步骤6:启动PHPStudy并访问DVWA
bash
# 启动PHPStudy:
1. 双击桌面PHPStudy图标
2. 点击"启动"按钮(Apache和MySQL都要启动)
3. 确认两个服务都显示绿色"运行中"
# 访问DVWA:
1. 打开浏览器
2. 输入地址:http://127.0.0.1/dvwa/
3. 如果看到DVWA页面,说明部署成功
步骤7:初始化DVWA数据库
bash
# 数据库初始化:
1. 访问 http://127.0.0.1/dvwa/setup.php
2. 滚动到页面底部
3. 点击"Create / Reset Database"按钮
4. 等待数据库创建完成
5. 页面会自动跳转到登录页

步骤8:登录DVWA
bash
# 默认登录凭证:
用户名:admin
密码:password
# 登录后操作:
1. 首次登录需要设置安全级别
2. 建议从"Low"级别开始练习
3. 点击"Submit"保存设置
4.4 搭建流程图解
下载PHPStudy
安装到D盘
下载DVWA源码
解压到WWW目录
重命名为dvwa
修改配置文件
启动PHPStudy服务
浏览器访问127.0.0.1/dvwa
创建/重置数据库
使用admin/password登录
设置安全级别为Low
DVWA准备就绪
五、DVWA基本使用与安全级别
5.1 DVWA安全级别说明
| 安全级别 | 描述 | 适合人群 |
|---|---|---|
| Low | 无任何防护,漏洞明显 | 完全初学者 |
| Medium | 有基础防护,可绕过 | 有一定基础 |
| High | 较强防护,需要技巧 | 进阶学习者 |
| Impossible | 理论上无法攻击 | 学习防御方案 |
5.2 DVWA主要功能模块
1. Brute Force(暴力破解)
2. Command Injection(命令注入)
3. CSRF(跨站请求伪造)
4. File Inclusion(文件包含)
5. File Upload(文件上传)
6. Insecure CAPTCHA(不安全的验证码)
7. SQL Injection(SQL注入)
8. SQL Injection (Blind)(盲注)
9. XSS (Reflected)(反射型XSS)
10. XSS (Stored)(存储型XSS)
5.3 学习路径建议
bash
# 第一周:熟悉环境与基础漏洞
1. 暴力破解 (Brute Force)
2. 命令注入 (Command Injection)
3. 文件上传 (File Upload)
# 第二周:数据库相关漏洞
1. SQL注入 (SQL Injection)
2. SQL盲注 (SQL Injection Blind)
# 第三周:客户端漏洞
1. XSS跨站脚本
2. CSRF跨站请求伪造
# 第四周:高级漏洞与组合利用
1. 文件包含
2. 不安全的验证码
3. 多个漏洞组合攻击
六、基础安全概念与防御思路
6.1 安全开发原则
- 不信任任何输入:所有用户输入都可能是恶意的
- 最小权限原则:只授予必要的最小权限
- 深度防御:多层安全防护,不依赖单一措施
- 默认安全:默认配置应该是安全的
6.2 开发者防御建议
针对SQL注入
php
// 错误示例(易受攻击)
$query = "SELECT * FROM users WHERE id = " . $_GET['id'];
// 正确示例(使用预处理语句)
$stmt = $pdo->prepare("SELECT * FROM users WHERE id = :id");
$stmt->execute(['id' => $_GET['id']]);
针对命令执行
php
// 错误示例(易受攻击)
system("ping " . $_GET['ip']);
// 正确示例(过滤输入)
$ip = filter_var($_GET['ip'], FILTER_VALIDATE_IP);
if ($ip !== false) {
system("ping " . escapeshellarg($ip));
}
针对文件上传
php
// 防御措施:
1. 验证文件类型(MIME类型,不只是扩展名)
2. 限制文件大小
3. 重命名上传的文件
4. 存储在非Web可访问目录
5. 使用病毒扫描
七、故障排除与常见问题
7.1 安装常见问题
| 问题 | 可能原因 | 解决方案 |
|---|---|---|
| 无法访问127.0.0.1 | Apache未启动 | 检查PHPStudy中Apache状态 |
| 数据库连接失败 | 配置文件错误 | 检查config.inc.php中的用户名密码 |
| 页面显示错误代码 | PHP版本不兼容 | 在PHPStudy中切换PHP版本 |
| 无法创建数据库 | MySQL未启动 | 检查PHPStudy中MySQL状态 |
7.2 PHPStudy使用技巧
-
端口冲突解决:
- 如果80端口被占用,可修改Apache端口
- 在PHPStudy设置中更改端口号
-
多版本PHP切换:
- PHPStudy支持多个PHP版本
- 可根据需要切换(DVWA推荐PHP 5.4+)
-
数据库管理:
- 使用phpMyAdmin管理数据库
- 访问 http://127.0.0.1/phpmyadmin
7.3 学习资源推荐
-
官方文档:
- DVWA GitHub:https://github.com/digininja/DVWA
- OWASP官网:https://owasp.org/
-
练习平台:
- Hack The Box
- TryHackMe
- 国内的i春秋、漏洞银行
-
参考书籍:
- 《Web安全深度剖析》
- 《白帽子讲Web安全》
- 《SQL注入攻击与防御》
八、法律与道德规范强调
8.1 必须遵守的原则
- 授权原则:只测试自己拥有或获得书面授权的系统
- 最小影响:避免对系统造成不必要的损害
- 保密原则:不公开披露发现的漏洞细节
- 合法使用:不将技术用于非法目的
8.2 真实案例警示
- 未经授权测试:可能面临刑事指控
- 数据窃取:侵犯隐私,刑罚严重
- 系统破坏:造成损失需赔偿
- 漏洞交易:非法交易漏洞同样违法
8.3 正确报告漏洞流程
发现漏洞 → 确认所有权 → 联系相关负责人
↓
提供详细报告 → 给予合理修复时间
↓
协助验证修复 → 公开披露(如需)
总结要点
搭建DVWA的核心步骤口诀:
一下载,二安装,三解压到WWW
四改名,五配置,六启动服务
七访问,八建库,九登录练习
学习建议:
- 循序渐进:从Low级别开始,逐步提高难度
- 理论结合实践:每个漏洞先理解原理,再动手操作
- 举一反三:学会一种漏洞,思考类似漏洞的利用
- 防御思维:不仅学习攻击,更要思考如何防御
最终提醒:
网络安全技术是双刃剑,学习目的是为了更好地防御。所有练习必须在授权环境中进行,遵守法律法规,培养正确的安全观和职业操守。
课程时间 :本周课程
讲师 :二姨老师
适合人群 :网络安全初学者、Web开发人员
学习目标:掌握常见Web漏洞原理,搭建实验环境,培养安全开发意识
