环境搭建与工具链:打造你的安全实验室
做漏洞排查,第一件事不是学攻击手法,而是先搭个能动手的环境。我见过太多人拿着书看了一堆理论,真上手时连 DVWA 都跑不起来——说白了,安全这行,不动手永远学不会。
这一章,我们就把三样东西搞定:本地靶场环境、Burp Suite 抓包工具、Nmap 基础扫描。嗯,这三样是你后续所有实战的基础。
1. 搭建本地漏洞测试环境
为什么要搭本地环境?因为你在公网上乱扫靶场,轻则被 ISP 警告,重则惹上法律麻烦。本地环境随便折腾,崩了重装就是。
1.1 DVWA(Damn Vulnerable Web Application)
DVWA 是我个人最推荐的入门靶场。它包含了 SQL 注入、XSS、文件包含等常见漏洞,而且每个漏洞都有四个安全等级:Low、Medium、High、Impossible。
安装步骤:
- 准备 PHP + MySQL 环境(我用的是 XAMPP,一键安装省心)
- 下载 DVWA 源码,解压到 XAMPP 的 htdocs 目录
- 重命名为 dvwa
- 复制 config/config.inc.php.dist 为 config.inc.php
- 修改数据库密码(默认 root 空密码)
- 访问 http://localhost/dvwa/setup.php,点击 Create/Reset Database
我的经验:第一次创建数据库时,如果报错说 reCAPTCHA key 缺失,直接去 config.inc.php 里把 reCAPTCHA 相关行注释掉就行。这个不影响漏洞练习。
// config.inc.php 关键配置
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = ''; // 改成你的 MySQL 密码
$_DVWA[ 'default_security_level' ] = 'low'; // 默认低安全等级
1.2 WebGoat
WebGoat 是 OWASP 出品的 Java 靶场,比 DVWA 更系统化,每个漏洞都配有理论讲解。我记得第一次用 WebGoat 时,被它的交互式教学惊艳到了——它会一步步引导你完成攻击。
安装方式:
- 确保安装了 JDK 11+
- 下载 webgoat-server.jar
- 命令行运行:
java -jar webgoat-server.jar - 访问 http://localhost:8080/WebGoat
注意:WebGoat 默认端口是 8080,如果被占用,可以加参数 --server.port=9090 指定其他端口。我曾经在项目现场演示时,就因为端口冲突折腾了十分钟——嗯,从那以后我习惯先检查端口占用。
2. Burp Suite 安装与配置
Burp Suite 是 Web 安全测试的瑞士军刀。社区版免费,功能足够入门。专业版多了扫描器和一些自动化功能,但前期用社区版完全够。
2.1 安装与启动
- 从 PortSwigger 官网下载 Burp Suite Community Edition
- 安装后启动,选择 Temporary Project(临时项目)
- 默认配置即可,后续可以随时调整
2.2 配置浏览器代理
Burp 的核心是中间人代理。它站在浏览器和服务器之间,拦截并修改请求。
- Burp 默认监听 127.0.0.1:8080
- 浏览器设置代理为 127.0.0.1:8080
- 访问 http://burp,下载 CA 证书并安装(这样才能抓 HTTPS)
核心配置清单:
| 配置项 | 推荐值 | 说明 |
|---|---|---|
| Proxy - Intercept | 开启 | 拦截请求,手动放行 |
| Proxy - Options | 127.0.0.1:8080 | 监听地址 |
| Target - Scope | 添加靶场域名 | 只抓目标流量,减少干扰 |
| Repeater | 默认 | 重放修改请求 |
你想想看,如果不设置 Scope,Burp 会把你浏览器的所有流量都抓下来——刷个微博都一堆请求,根本没法看。我个人习惯是先把靶场域名加到 Scope,然后开启 Only show items in scope,这样界面清爽多了。
3. Nmap 基础扫描
Nmap 是网络扫描的标配工具。它帮你搞清楚目标开了哪些端口、跑了什么服务、操作系统是什么。说白了,就是信息收集的第一步。
3.1 安装
- Windows:下载安装包,一路 Next
- Linux:
sudo apt install nmap或sudo yum install nmap - macOS:
brew install nmap
3.2 常用扫描命令
# 基础扫描 - 扫描常见端口
nmap 127.0.0.1
# 指定端口范围
nmap -p 1-1000 127.0.0.1
# 服务版本探测
nmap -sV 127.0.0.1
# 操作系统识别
nmap -O 127.0.0.1
# 全面扫描(常用)
nmap -A 127.0.0.1
避坑指南:我曾经在客户内网用默认参数扫了个大网段,结果被对方安全设备告警了。后来学乖了,扫描前先加 -T2 降低速度,或者用 --host-timeout 30s 避免卡死。记住,扫描不是越快越好,隐蔽性更重要。
3.3 扫描结果解读
Nmap 的输出其实很直观。端口状态有几种:
- open:端口开放,服务在监听
- closed:端口关闭,没有服务
- filtered:被防火墙过滤了,不确定是否开放
- open|filtered:无法区分是开放还是被过滤
举个例子,你扫描本地 DVWA 环境,应该能看到 80 端口(Apache)和 3306 端口(MySQL)是 open 状态。如果 3306 没开,说明 MySQL 没启动——嗯,这是新手最容易犯的错。
知识体系总览
下面这张图,把本章的核心内容串起来了。你搭建环境、配置工具、扫描目标,最终都是为了进入漏洞排查的实战环节。
本章小结
环境搭建这件事,说难不难,说简单也不简单。我见过太多人在这一步卡住——要么数据库连不上,要么证书装不对,要么 Nmap 扫不出结果。其实说白了,就是缺一个清晰的步骤清单。
这一章我们搞定了三件事:
- DVWA 和 WebGoat 两个靶场,一个 PHP 一个 Java,覆盖了主流 Web 漏洞场景
- Burp Suite 的代理配置和证书安装,这是后续所有手工测试的基础
- Nmap 的基础扫描命令和结果解读,信息收集的第一步
工具装好了,环境跑起来了,下一步就是真正动手排查漏洞了。嗯,到时候你会发现,今天搭的环境,就是你未来排查路上最趁手的武器。