新手渗透测试入门:DVWA靶场搭建全攻略与常见坑
新手学渗透测试最怕的不是不会用工具而是没有地方练手。DVWADamn Vulnerable Web Application就是用来填这个坑的靶场一个故意堆满漏洞的 PHP MySQL Web 应用把 SQL 注入、XSS、CSRF、文件上传这些渗透测试新手必考的漏洞点全部打包成一个个可以反复打的训练关卡。这篇文章从零开始把 DVWA 靶场搭建的全过程拆开揉碎包括环境选型、配置文件修改、数据库初始化、Docker 备用方案以及我这些年反复搭建踩过的坑。只要跟着下面这套保姆级步骤走在 Windows 本地上把 DVWA 跑起来基本不会超过一个小时。我用的版本是 DVWA 2.5.4搭配 XAMPP 8.2.xPHP 8.2实测整个流程没有踩到兼容性大坑。本文默认你的系统是 Windows 10/11如果你用 macOS 或者 Linux思路完全一样只是路径和安装包不同。1. DVWA 靶场是什么为什么新手绕不开它1.1 靶场与真实站点的区别很多人问渗透测试不是有真实站点可以测吗为什么还要搭靶场答案很简单真实站点不能随便打未经授权测试是违法的而且真实环境里你不知道目标有什么漏洞也拿不到源码排查问题非常困难。靶场是专门用来练手的“沙盘”。DVWA 故意保留了不安全的代码让你能看到漏洞背后的源码和触发条件还能一键重置数据。打完一次点一下重置环境又恢复原样可以反复练。这种“可摧毁、可重建、可复盘”的特性是真实目标给不了的。DVWA 跑在本地不会占用外网资源也不依赖公网服务器。你可以在断网状态下练习也可以在本地用 Burp Suite、sqlmap、sqlmap 等工具对它做扫描和测试完全不用担心影响别人。这样既安全又高效新手可以放心大胆地操作。1.2 内置漏洞模块和难度分级DVWA 内置了十多个经典的 Web 漏洞训练模块几乎覆盖了初级渗透测试工程师需要掌握的所有方向。我列一下当前版本里比较核心的模块模块名称漏洞类型适合练习方向SQL InjectionSQL 注入手工注入、sqlmap 自动化、绕过技巧XSS反射/存储/DOM跨站脚本前端安全、Cookie 窃取、弹窗验证CSRF跨站请求伪造表单 Token、Referer 校验、流程分析File Upload文件上传绕过上传校验、图片马、WebShellCommand Injection命令注入命令拼接、管道符、远程命令执行File Inclusion本地/远程文件包含LFI/RFI、日志注入、PHP 封装协议Brute Force登录爆破弱口令、验证码绕过、Burp 爆破Insecure CAPTCHA验证码绕过业务逻辑漏洞、前端校验缺陷SQL Injection (Blind)盲注布尔盲注、时间盲注、延时函数Weak Session IDs会话安全会话固定、Session ID 预测Open Redirect开放重定向URL 跳转漏洞、钓鱼构造每个模块下面还有四个难度等级Low、Medium、High、Impossible。难度不同代码的防御强度不同你需要绕过的手段也不一样。从 Low 开始降低门槛再逐级挑战 High最后看 Impossible 的写法这个过程就是在理解“脆弱代码”和“安全代码”之间的差异。1.3 安全等级机制的妙用初次接触 DVWA 的人可能不理解为什么同一个漏洞还要分难度我的体会是这不仅仅是门槛问题更是一条完整的代码审计学习路径。Low 等级几乎是“裸奔”代码没有任何过滤让你先理解漏洞是怎么产生的。Medium 增加了一些表层过滤比如对输入框做addslashes、对文件后缀做简单检查这些过滤有的可以绕过有的不能你需要学会思考“过滤到底过啥”。High 等级则引入了更严格的校验逻辑比如参数化查询、Token 校验、随机文件名你不仅要会打还要能分析当前场景下能绕过哪些环节。到了 Impossible 等级代码基本是安全写法这时候更值得去读源码学习如何防御同类漏洞。这套设计特别适合新手先打 Low再看源码再切到 High 对比代码差异。很多人在 Low 难度能轻松注入成功到了 High 就不会了原因就是只背着 payload 打没有理解漏洞原理。DVWA 的难度分级正好逼着你补上这块短板。2. 搭建前必看三种方案怎么选2.1 方案对比表DVWA 是一个 PHP MySQL 应用所以第一步是准备 Web 环境和数据库。目前主流搭建方式有三种XAMPP 一键环境、Docker 容器、虚拟机装完整 Kali Linux。我给这三条路线做了个对比。方案上手难度环境真实性资源占用适合场景XAMPP DVWA 源码低中高低Windows 本机快速学习可随时断点调试Docker 容器中低中低想隔离环境、快速重置、多版本共存虚拟机装 Kali高完整高希望模拟真实内网拓扑、练习提权渗透全流程如果你已经装了 Kali Linux 虚拟机可以直接把 DVWA 部署到 Kali 自带的 Apache/MySQL 里这和 XAMPP 思路完全一样。但如果你只是想在 Windows 上快速把靶场跑起来我强烈建议先用 XAMPP没必要一上来就开虚拟机更没必要专门为了 DVWA 去装一套 Kali。2.2 为什么 Windows 本地首选 XAMPP我先说结论在 Windows 上搭建 DVWAXAMPP 是最省心、最容易排错的一条路。XAMPP 把 Apache、MySQL、PHP、phpMyAdmin 打包成了一个控制面板你只需要启动 Apache 和 MySQL 两个服务再把 DVWA 源码放进htdocs目录就能通过浏览器访问。它不像 Docker 那样有一层镜像抽象出错时你能直接看到文件路径、PHP 日志、MySQL 日志排错门槛低很多。Docker 的优势是环境隔离一条命令就能跑起来但它把很多细节藏起来了。新手如果一开始用 Docker遇到数据库连不上、容器内端口不通、PHP 版本差异这些问题时往往不知道从哪里下手。XAMPP 是“看得见摸得着”的环境文件和配置都在明面上适合先理解原理再玩容器方案。我见过很多新手一上来就在 Docker 里跑 DVWA结果卡在初始化数据上然后来问为什么。一查其实是镜像里的 MySQL 服务还没起来。换成 XAMPP 之后问题基本都是几分钟解决。所以说如果你不是特别熟悉 Docker先别急着耍花活。2.3 版本选择与下载注意事项DVWA 官方一直在维护建议去 GitHub 下载最新发布版目前常见稳定版本是 2.5.4。下载地址是官方的digininja/DVWA仓库可以点击 Code 按钮下载 ZIP 压缩包也可以直接用 Git 克隆。不要用网上一些打包好的“老版本 DVWA”那些版本可能停留在多年以前PHP 8 下跑起来全是报错而且不一定包含最新的修复和模块。XAMPP 推荐下载 8.2.x 或更高版本。DVWA 2.5.4 在 PHP 8.2 下实测可以正常运行部分模块在 PHP 8.3 上可能有Deprecated警告但不影响核心功能。如果你希望完全避开兼容性问题PHP 8.1/8.2 是比较稳的选择。还有一点要注意下载 XAMPP 时官网会提供多种组件包我们只需要 Windows 版本里的标准包Apache MySQL PHP phpMyAdmin不需要额外装其他组件。安装路径建议保持默认的C:\xampp这样后续教程里的路径都能对上。3. 保姆级搭建步骤XAMPP DVWA 完全实操3.1 安装 XAMPP 并启动两大服务安装 XAMPP 的过程就是一路 Next没有什么需要特殊配置的选项。安装完成后打开 XAMPP Control Panel控制面板你会看到 Apache、MySQL、FileZilla、Mercury 等一堆服务。我们这里只需要启动 Apache 和 MySQL其他保持 Stop 状态即可。点击 Apache 和 MySQL 右侧的 Start 按钮两个服务状态会变成绿色表示启动成功。如果启动失败日志里会给出原因最常见的是 80 端口被占用比如 IIS、Nginx 或其他本地服务占用了 80 端口。解决办法有两条一是关掉占用 80 端口的程序二是把 Apache 端口改掉。修改端口的话打开C:\xampp\apache\conf\httpd.conf找到Listen 80这一行改成Listen 8080然后重启 Apache。这样的话后面访问 DVWA 的地址就要加上端口号比如http://127.0.0.1:8080/dvwa/。大多数情况下关掉占用进程更省事。MySQL 启动失败一般是 3306 端口被占用或者是之前安装过 MySQL 服务冲突。遇到这种情况可以先在命令行执行netstat -ano | findstr :3306找到占用的 PID在任务管理器里结束进程。如果之前装过 MySQL 服务可以在 Windows 服务管理器里停掉或者修改 XAMPP 的 MySQL 端口。启动成功后在浏览器访问http://127.0.0.1如果能看到 XAMPP 的默认欢迎页说明 Apache 已经正常工作。如果打不开先检查 Apache 是不是开了防火墙拦截又或者是不是端口没改对。3.2 把 DVWA 源码部署到 htdocsXAMPP 的网站根目录是C:\xampp\htdocs所有能在浏览器里访问的 Web 文件都要放在这里。从 GitHub 下载的 DVWA 压缩包解压后会得到一个DVWA-master这样的文件夹里面才是 DVWA 的代码。为了访问方便我把这个文件夹重命名为dvwa也就是最终路径是C:\xampp\htdocs\dvwa。全部小写的好处是 URL 不需要区分大小写后面在浏览器输入路径时不容易出错。进入C:\xampp\htdocs\dvwa目录后你会看到几个关键目录和文件config/配置文件目录里面存放连接数据库等核心配置。hackable/可上传文件和漏洞辅助材料的目录文件上传模块会用到。vulnerabilities/每个漏洞模块的源码目录。database/初始化数据库的 SQL 文件。dvwa/核心函数和页面渲染代码。login.php、index.php、setup.php入口文件。做渗透测试时你经常需要读这些源代码来理解漏洞触发条件。比如想搞明白 SQL 注入的过滤逻辑就去看vulnerabilities/sqli/source/下面的 PHP 文件不同难度等级对应不同源码文件。靶场不只是一个“答题机器”更是一个代码审计学习素材库。3.3 修改数据库配置文件DVWA 的配置文件模板在config/config.inc.php.dist你需要先把它复制一份重命名为config.inc.php。直接改.dist文件也能生效但这样做不标准以后想恢复默认配置会很麻烦。所以正确做法是复制。用记事本或 VS Code 打开config.inc.php你会在最上面看到数据库连接相关配置。默认情况下DVWA 会尝试使用dvwa用户名和pssw0rd密码连接数据库目标数据库名为dvwa。这一套配置在初始化时可能会失败因为本地 MySQL 里并没有这个用户。$_DVWA[ db_server ] 127.0.0.1; $_DVWA[ db_database ] dvwa; $_DVWA[ db_user ] dvwa; $_DVWA[ db_password ] pssw0rd; $_DVWA[ db_port ] 3306;如果你用的是 XAMPP 默认的 MySQL 安装root 用户密码默认为空。最简单粗暴的配置是把db_user改成rootdb_password改成空字符串。但出于后续管理上的考虑我更推荐手动创建一个专门给 DVWA 用的数据库用户这样不会把 root 密码到处乱放也和官方默认配置保持一致。修改完保存文件先不要急着打开页面因为接下来还要初始化数据库。如果这里不配置好后面必然会出现Access denied或者Could not connect to database的报错。3.4 通过 setup.php 初始化数据库在浏览器访问http://127.0.0.1/dvwa/setup.php你会看到一个“Setup”页面。页面里会显示当前 PHP 版本、数据库连接状态以及一个“Create/Reset Database”按钮。如果数据库配置正确页面会显示数据库连接成功。点击按钮后DVWA 会自动创建dvwa数据库、写入表结构并插入默认数据。正常情况下页面会提示Setup successful同时告诉你默认用户名是admin默认密码是password。如果这里报错先别急着慌张。最常见的报错是数据库连接失败说明config.inc.php里的连接信息不对或者 MySQL 服务没有启动。还有一种情况是 PHP 内置的mysql扩展缺失但 XAMPP 自带的 PHP 默认已经启用了需要的扩展极少出现这个问题。setup.php 页面还会检测一些 PHP 环境配置项比如allow_url_include。这个选项默认是 Off会影响远程文件包含RFI模块的测试。如果你看到警告可以打开C:\xampp\php\php.ini搜索allow_url_include把Off改成On然后重启 Apache。注意这个配置在生产环境绝对不能开启但本地靶场没问题。初始化完成后浏览器会自动跳转到登录页面也可以用http://127.0.0.1/dvwa/login.php进入。输入admin和password就能进入 DVWA 主界面。3.5 登录靶场并快速验证登录成功后你会看到 DVWA 的主页左侧菜单栏列出所有漏洞模块右侧是安全等级和重置数据库的入口。到这里核心搭建流程就算跑通了。我习惯先看一眼左下角的“Security Level”把它设为 Low然后打开 SQL Injection 模块在 ID 输入框里填一个单引号如果页面出现 SQL 语法错误说明漏洞模块正常工作。这么做的目的不是去打靶而是验证 PHP、MySQL、DVWA 代码链路是否真的通了。如果输入单引号后没有任何反应可能是数据库没初始化成功也可能是你连接的数据库根本不是 DVWA 的库。这时候重新访问 setup.php再点一次 Create/Reset Database通常能解决。到这里你已经拥有一个可以折腾的本地靶场。不过我要提醒一句DVWA 这类的漏洞环境只允许在本地或者有明确授权的情况下测试。不要拿同样的思路去打别人的站点那是违法行为也不是“渗透测试”该做的事。4. 数据库连接报错手动创建 MySQL 用户4.1 为什么“Access denied”会出现很多人在配置完config.inc.php后打开 setup.php 会看到Access denied for user dvwalocalhost。原因很简单你的 MySQL 里根本没有dvwa这个用户或者密码不是pssw0rd。DVWA 官方默认配置并不保证能直接连接成功因为它在安装阶段需要你根据本地 MySQL 环境微调。XAMPP 自带的 MySQL 默认只有一个root用户密码为空并没有创建 DVWA 需要的专属用户所以“默认配置”常常会报错。有个细节要注意环境变量里写的是127.0.0.1尽量不要用localhost。在 Windows 上PHP 的 mysqli 扩展连接localhost时可能会尝试走 Unix Socket导致连接失败或超时。改成127.0.0.1走 TCP 协议稳定得多。4.2 用 phpMyAdmin 手动创建用户如果你不喜欢直接把 root 密码填进 DVWA 配置那就手动创建一个专用数据库用户。XAMPP 自带 phpMyAdmin访问http://127.0.0.1/phpmyadmin/用 root 用户登录密码为空。在 SQL 选项卡里执行下面这段语句就能创建一个名为dvwa、密码为pssw0rd的用户并授权它操作dvwa数据库CREATE USER dvwa127.0.0.1 IDENTIFIED BY pssw0rd; GRANT ALL PRIVILEGES ON dvwa.* TO dvwa127.0.0.1; FLUSH PRIVILEGES;执行完以后回到config.inc.php确认db_user是dvwa、db_password是pssw0rd、db_server是127.0.0.1再刷新 setup.php数据库连接状态就会变成正常。如果你还是想用 root 账号也可以。把db_user改成rootdb_password留空然后重启 Apache 再刷新。本地靶场环境下问题不大但养成使用专用账号的习惯更好起码不会因为手滑把某个配置文件的 root 密码泄漏到别的环境里。4.3 不同报错信息的排查对照表我把搭建过程中容易碰到的数据库报错整理成一张对照表方便你直接对照排查。报错信息可能原因解决办法Access denied for user dvwalocalhost用户不存在或密码错误用 phpMyAdmin 创建用户或修改配置文件Could not connect to MySQL: Connection refusedMySQL 服务未启动在 XAMPP Control Panel 启动 MySQLUnknown database dvwa数据库还没有初始化访问 setup.php 点击 Create/Reset Databasemysqli::real_connect(): (HY000/2002) No such file or directoryPHP 尝试用 Socket 连接 MySQL把db_server改成127.0.0.1Table dvwa.users doesnt exist数据表缺失或初始化失败重新执行 setup.php 的创建/重置Cannot connect: The server is not responding3306 端口被占用或防火墙拦截检查端口占用和 XAMPP 防火墙状态如果以上方法都试过还是连接不上建议看 MySQL 日志。XAMPP 的 MySQL 日志在C:\xampp\mysql\data目录下里面的.err文件记录了服务启动和连接过程中的错误大多数情况下能把问题定位得很准确。5. 进阶一条命令用 Docker 跑起来5.1 经典 Docker 镜像与启动命令如果你已经熟悉 DockerDVWA 也可以直接用容器跑。最常见的镜像是vulnerables/web-dvwa在 Docker Hub 上可以找到。这种方式最大的优势是快不用手动装 PHP、配 MySQL一条命令就能看到靶场。打开终端执行docker run --rm -it -p 8080:80 vulnerables/web-dvwa启动后用浏览器访问http://localhost:8080就能看到 DVWA 登录页。这里把容器的 80 端口映射到宿主的 8080避免和你本地的 Apache 端口冲突。如果你本机也在用 80 端口不要写成8080:80后面那个是容器固定端口前面是宿主机端口可以随意换。比如想用 8888 端口就写成-p 8888:80。容器启动后登录页面可能会有点慢因为容器内的 MySQL 服务需要时间初始化。如果直接登录出现数据库错误访问一下http://localhost:8080/setup.php点击 Create/Reset Database一般就能恢复正常。5.2 Docker Compose 方式如果你想更可控一些比如把数据库单独拆出来方便以后重置数据可以写一个简单的 Docker Compose 文件。这种方法适合本地长期做实验也适合想用脚本化方式管理靶场的同学。version: 3 services: dvwa: image: vulnerables/web-dvwa ports: - 8080:80 environment: DB_HOST: mysql DB_USER: dvwa DB_PASSWORD: pssw0rd DB_NAME: dvwa depends_on: - mysql mysql: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: rootpass MYSQL_DATABASE: dvwa MYSQL_USER: dvwa MYSQL_PASSWORD: pssw0rd把上面内容保存为docker-compose.yml在同一个目录执行docker compose up -d就能拉起一套带 MySQL 的 DVWA 环境。使用 Compose 的好处是每次练完以后可以执行docker compose down -v把数据卷一起删掉下次再跑一个干净环境。5.3 Docker 方案的优缺点与坑Docker 方案虽然快但并不是没有坑。经典镜像vulnerables/web-dvwa更新比较慢内置的 PHP 版本比较旧有可能出现某些新工具无法兼容的情况。比如你在宿主机用新版 sqlmap 连进去功能上没问题但如果你想在容器里直接装别的渗透工具镜像底层的包管理器可能已经过时装东西会比较麻烦。另外Docker 容器默认没有持久化配置如果使用--rm参数容器停止后所有数据都会消失。这意味着你练完 SQL 注入把数据库表破坏得一塌糊涂下次想继续练还得重新初始化反而不方便。所以更适合“快速体验”而不是“长期精细学习”。我个人的建议是如果你是为了学原理、读代码优先用 XAMPP 原生部署如果你只是想在 5 分钟内看到一个 DVWA 登录页或者想隔离测试环境再选 Docker。两者不冲突可以都装用不同端口区分。6. 高频问题与避坑速查6.1 Apache/MySQL 启动失败这是最常见的问题。XAMPP 启动 Apache 失败八成是 80 端口被占用。你可以在命令行执行netstat -ano | findstr :80如果看到LISTENING状态和 PID打开任务管理器找到对应进程结束它。或者修改httpd.conf里的Listen 80为其他端口。MySQL 启动失败则要看 3306 端口。还有一个容易被忽略的点如果你之前装过独立的 MySQL 服务Windows 会把 MySQL 注册成系统服务开机自启导致 XAMPP 的 MySQL 无法绑定 3306 端口。解决方法是打开 Windows 服务管理器找到 MySQL 相关服务停掉并且设置为“手动”启动。6.2 页面样式丢失或空白登录 DVWA 后页面样式不对很多是路径问题。DVWA 的 CSS 和图片是通过相对路径加载的如果你把源码文件夹命名为DVWA-master并且 URL 里带了奇怪后缀可能会出现资源 404。直接把文件夹改成小写dvwa访问http://127.0.0.1/dvwa/样式问题基本就消失了。页面空白还可能是 PHP 报错被隐藏了。打开C:\xampp\php\php.ini把display_errors设为On然后重启 Apache就能在页面上看到具体错误信息。本地靶场建议开启错误显示方便排查问题。6.3 初始化数据库失败点击 Create/Reset Database 之后卡在转圈或者报Could not connect基本都是config.inc.php里的数据库连接信息不对。按第 4 节的方法检查连接配置把db_server设为127.0.0.1确认 MySQL 已经启动再刷新 setup.php。如果确认配置没错但还是无法创建数据库可能是 phpMyAdmin 里的 root 账号权限不够。XAMPP 默认 root 密码为空如果之前改过 root 密码config.inc.php里也要同步改或者用专用用户连接。6.4 登录不上账号admin、密码password是正确的前提是数据库已经初始化成功。如果提示登录失败先回到 setup.php 再点一次 Create/Reset Database。这个操作能重置 admin 用户的密码同时清空所有漏洞模块的数据。还有一种情况是浏览器缓存了旧 Session。DVWA 的登录状态是基于 Session 的初始化数据库后旧的会话可能失效。解决办法是清除浏览器 Cookie或者换一个无痕窗口重新登录。6.5 PHP 版本兼容性问题DVWA 2.5.4 在 PHP 8.2 下能跑但某些老版本 DVWA 在 PHP 8 下会直接白屏因为 PHP 7 以后移除了一些废弃函数比如mysql_*系列。所以我才强调要下载官方最新版不要用网上那种“怀旧版”。如果页面顶部看到Deprecated警告不影响功能但看着烦。在php.ini里设置error_reporting E_ALL ~E_DEPRECATED display_errors Off保存后重启 Apache警告就没了。需要注意的是靶场学习过程中我建议保留错误显示因为很多时候漏洞触发后需要在页面里看到 SQL 报错才能判断注入是否成功。如果你因为嫌弃警告把它关了后面做题可能会少很多信息。7. 从搭建到上手DVWA 使用路线与后续建议7.1 搭建完成后的自测清单搭建完成后不要急着去打模块先做一遍自测确认每一个漏洞模块都能正常访问。我的自测清单是这样的能正常登录 DVWA并且左侧菜单可以展开。把 Security Level 设置为 Low进入 SQL Injection 模块输入1能报错或出现异常页面。进入 XSS (Reflected) 模块输入scriptalert(1)/script能触发弹窗。进入 File Upload 模块能正常上传文件。重新访问 setup.php点击 Create/Reset Database 能恢复初始状态。如果这些操作全部通过说明靶场环境完全可用。如果某个模块打不开通常是对应功能依赖的配置没开比如文件上传模块可能需要目录写入权限Windows 下一般不会出问题Linux 下要检查hackable/uploads/目录是否可写。7.2 新手刷题顺序建议我建议的学习顺序是先刷 SQL Injection 和 XSS再刷 CSRF、Command Injection、File Upload最后碰盲注和文件包含。SQL Injection 是整个 Web 渗透测试的基础XSS 能帮你理解前后端交互这两个模块都建议把 Low、Medium、High 三个等级打完再对照 Impossible 源码看防御写法。刷题不是只追求“打进去”。我习惯在每次成功之后打开vulnerabilities目录下的源码看当前难度等级的代码到底过滤了什么、校验了什么、为什么 payload 能绕过。这一步能沉淀出真正的经验不然你今天能打 Low明天换个过滤规则就不会了。7.3 往后可以玩什么DVWA 只是起点。打完之后很多人会转向 Pikachu 靶场、SQLi-Labs 靶场、Upload-Labs 靶场这些同样是本地漏洞环境覆盖更细分的漏洞类型。比如 SQLi-Labs 专门用来练习 SQL 注入的各种变形从联合注入到盲注再到二次注入一级一级递进Pikachu 里也有很多基于业务逻辑的漏洞比如越权、支付逻辑问题。还有 Vulnhub 上的虚拟镜像里面是完整的 Linux 系统与 Web 应用适合练习从 Web 漏洞打到服务器提权的完整渗透流程。不过这类靶场通常需要虚拟机对网络配置和理解要求更高建议在 DVWA 里把基础打牢之后再去碰。7.4 安全与合规提醒DVWA 作为漏洞靶场只能在本地或者你有明确授权的环境中使用。把它部署到公网、拿它去模拟攻击线上目标都是高风险行为。搭建靶场的初衷是学习而不是制造新的风险源头。我建议你在关闭 DVWA 页面或者结束学习后直接停止 Apache 和 MySQL 服务不让漏洞环境长期挂在后台。如果你从本文的 XAMPP 方案切换到 Docker 方案用完之后记得清理容器。一个暴露在局域网里的 DVWA 容器本质上等同给内网丢了一个可以被攻击的站点哪怕它只是个靶场也可能被扫描器盯上。安全意识应该从自己动手搭环境那一刻就开始养。