ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

打开页面看到的是一堆源码:PHP 没被解析时先查三件事

打开页面看到的是一堆源码:PHP 没被解析时先查三件事 授权与合规声明本文全部操作对象均为自建隔离靶场本机容器或隔离虚拟机涉及安全测试的环节必须以取得合法授权为前提。未经授权的渗透测试违反《中华人民共和国网络安全法》与《刑法》相关条款须承担相应法律责任。本文只讲环境配置、版本对照与靶场隔离不含任何攻击步骤、利用载荷与绕过手法请勿将文中环境指向任何非自有系统。一、先分清页面出不来其实是三类不同的现象刚把 PHP 靶场跑起来浏览器里出现的不是页面而是一整段代码文本——这个现象在新手环境里出现的频率很高。但它只是页面出不来里的第一类。三类的排查方向完全不同混在一起查会绕远路。现象类别浏览器里看到什么大概率卡在哪一层本文是否处理A 类 源码原样输出一整段代码文本页面上能看到?php这类标记这段代码根本没被当成 PHP 处理✅ 本文主线B 类 页面在但元素不对页面框架能打开图像处理、验证码一类模块异常某个 PHP 扩展没装✅ 本文第四章C 类 页面在但结果不对页面能打开点进去之后功能结果不对数据库、权限或业务逻辑❌ 不在本文范围C 类要专门说明一句这类现象里有一部分其实是靶场本身的设计意图不是环境问题所以本文不碰它。本文的落点只有一个A 类。因为 A 类最容易被误判——很多人一看到代码文本第一反应是PHP 版本不对于是去换版本换了半天还是老样子。先把这一层的问法定死。浏览器拿到什么由服务器决定服务器要不要把这段文件当成 PHP 来处理取决于三件事服务器上有没有真的装上 PHP并且这个 PHP 有没有被启用中间件有没有被告知这个后缀的文件要交给 PHP 处理这段代码要用到的扩展装了没有。这三件事的顺序不能颠倒没有第一条第二、三条无从谈起有了第一条但第二条没配页面依然是源码前两条都对、第三条不对表现就从 A 类变成了 B 类。这里还要说明一个容易走偏的地方网上讲这个现象的教程很多会直接给出一张版本对照表让人照着挨个换。版本确实和这件事有关但它不在上面这三件事里——三件事没查完就去调版本等于跳过了更可能的原因。所以本文把它单独放到第五章去讲。⚠️代码待验证# 先确认自己看到的到底是哪一类看服务端声明的类型 看返回内容本身curl-s-Ihttp://127.0.0.1:4280/|grep-i^content-typecurl-shttp://127.0.0.1:4280/|head-n5第一行的意义是看服务端自己说这个响应是什么类型第二行的意义是直接看返回体到底是页面还是源码文本。两者都对不上页面再往下走三件事。本章可以带走的一句看到源码文本先别急着换版本——它落在有没有被当成 PHP 处理这一层而这一层由三件事决定。二、第一件事PHP 有没有真的装上并启用这一条听起来像废话但它恰恰是有官方答复可引的一条。DVWA 官方仓库里有一个 issue编号#573标题里带着 php8.1 字样。它的实际现象是页面把 PHP 源码原样输出。维护者digininja 本人的答复是逐字的You haven’t got php installed or enabled. Follow the README for instructions提问者随后重装 PHP 后解决。也就是说这个 issue 的真因是 PHP 没被安装或没被启用不是版本不兼容。出处与核验日见附表 A。这条答复的价值在于它把看到源码文本的默认排查顺序摆了出来——先看 PHP 本身在不在、有没有启用而不是先怀疑版本。那具体怎么确认分两种情况看。情况一打包环境XAMPP 这类。DVWA 官方推荐的运行方式之一就是虚拟机加 NAT、在 guest 内装 XAMPP。这类集成环境的问题通常不是没装而是装了但服务没起或者模块没被加载。情况二自己装的 PHP 加 Apache。这时要分开确认两件事命令行里的 PHP 在不在以及 Web 服务器有没有加载 PHP 模块。这两件事是分开的——命令行里有php不等于 Apache 会用它。⚠️代码待验证# 1) 命令行层面PHP 到底装没装、是哪个版本php-v# 2) Web 服务器层面Apache 有没有加载 PHP 模块apachectl-M2/dev/null|grep-iphp# 或者Debian / Ubuntu 系apache2ctl-M2/dev/null|grep-iphp第一条有输出、第二条查不到就是典型的装了但没启用。这时候该做的是把模块启用起来并重启服务而不是去降 PHP 版本。还有一种情况值得单列PHP 装了、模块也加载了但 Web 端用的其实是另一个 PHP。一台机器上装了多个 PHP 版本时命令行里的php与 Apache 实际加载的模块可能来自不同的安装路径。这时候php -v显示的结果和页面上真正在跑的那一个并不一致。判断方法是回到页面本身看 Web 端实际输出的那一份而不是只看命令行。本章可以带走的一句看到源码文本第一条要问的是PHP 在不在、有没有启用官方维护者对同类现象给出的第一句答复正是这一条。三、第二件事中间件有没有把它当 PHP 处理PHP 装上了、也启用了页面还是源码问题就落到中间件这一层Apache 有没有被配置成把.php交给 PHP 处理。upload-labs 官方 README 的环境要求表里中间件那一行的原文是逐字的设置Apache以moudel方式连接原文中module拼作moudel这里照抄不做任何修正。以 module 方式连接说的是 Apache 加载 PHP 的方式。官方把这一行单独列进环境要求表说明在官方看来它是环境要求的一部分而不是可选项。这一层还有第二种表现我单独拎出来讲后缀映射。upload-labs 官方容器的docker/docker-php.conf提交说明写的是添加php3 phtml解析。这句话说明官方在自己的容器里专门为.php3、.phtml这两种后缀加了交给 PHP 解析的配置。这里必须划一条线本文只写这条配置事实本身不写它对应哪一关更不写任何用法。.php3/.phtml被映射为 PHP 解析是官方容器里的一条配置记录它为什么被加上、加上之后影响什么超出本文范围。这一层还有反向的一种情况如果中间件配置里没有覆盖.php那么无论 PHP 装得多完整.php文件都会以源码形式返回。所以这一层的自查是去看配置文件里的解析规则而不是去猜版本。这一层的漏配在打包环境里尤其常见集成环境通常自带一套已经写好的解析规则一旦换了站点目录、换了站点配置或者手动改过配置文件规则就可能没跟过去。所以自查时看的不是当初装的时候配没配而是当前生效的配置里到底有没有这条规则。⚠️代码待验证# 看 Apache 当前生效的解析相关配置路径随发行版不同按自己环境替换apachectl-t-DDUMP_RUN_CFG2/dev/nullgrep-riphp/etc/apache2/mods-enabled/2/dev/null|head-n20grep-riphp/etc/httpd/conf.d/2/dev/null|head-n20# 只读查看官方容器里那条配置本身不启动任何东西# 仓库路径upload-labs/docker/docker-php.conf最后一行值得单独说明upload-labs 官方 Docker 的配置文件路径以及那条添加php3 phtml解析的提交说明都是在官方仓库里能直接看到的只读事实可以放心核对。本章可以带走的一句PHP 装了不等于 Apache 会用这一层看的是中间件里的解析规则其中最容易被人忽略的是后缀映射这一项。四、第三件事要用的扩展装了没有前两件事决定页面能不能出来第三件事决定出来之后能不能用。这一层的表现不再是源码文本而是前面说的 B 类页面框架在某个模块不对。upload-labs 官方 README 里对扩展的原文是一行表格PHP组件 |php_gd2, php_exif| 部分Pass依赖这两个组件也就是官方明说了部分关卡依赖这两个组件。对应到具体关卡官方 README 给到的关系是扩展依赖它的关卡据官方 README 口径php_gd2Pass-14、Pass-15php_exifPass-16这两行的写法要留神官方 README 给的表述是部分 Pass 依赖这两个组件而哪一关依赖哪一个是把 README 的组件行与关卡说明对应起来的结果。按关卡列出来没问题但不要说成官方逐关标注了扩展依赖。再看官方容器里实际装了什么upload-labs 官方容器的 Dockerfile 里另外装了gd、exif两个扩展。也就是说官方容器不是基础镜像里有什么就用什么而是专门补装了这两个。这一层的自查方式很直接列出当前 PHP 已加载的扩展再对着上表核一遍。⚠️代码待验证# 列出当前 PHP 已加载的扩展再按关键词过滤php-mphp-m|grep-i-Egd|exif有一个很容易搞混的点命令行里的php -m与 Web 服务器实际使用的那套 PHP可能不是同一套扩展。打包环境和自己装的 PHP 加 Apache这两个清单可能是分开的。所以遇到命令行里能看到 gd、页面上却还是不对这种情况要先确认 Web 端加载的究竟是哪一个 PHP。另一点扩展装上之后通常需要重启 Web 服务才会生效只把扩展放进去、不重启页面上看到的还是老样子。这类改了没重启和根本没装在现象上很像但排查方向完全不同——前者先看服务重启了没有后者先看扩展在不在。本章可以带走的一句前两件事决定页面能不能出来扩展这一条决定出来之后能不能用官方 README 已经把依赖的组件写成明确的一行。五、版本这一层为什么最容易被误判三件事都查完如果还是不对才会轮到版本。但这一层的网上说法最乱得先把口径校准。DVWA 官方 README 的「PHP Versions」部分关于 PHP 版本一共是三句话逐字如下Support will not be given for anyone trying to use PHP 5.x.Versions less than 7.3 have known issues that will cause problems, most of the app will work, but random things may not… support will not be given.Ideally you should be using the latest stable version of PHP三句话的意思是拒绝支持 PHP 5.x低于 7.3 有已知问题且不给支持建议使用最新稳定版。为什么这一层最容易误判因为它看起来最像问题所在——版本号是一个能一眼看到的数字而模块有没有启用解析规则有没有配是看不见的配置。看得见的东西先被怀疑看不见的东西最后才被想起这是这类现象里最常见的偏差。⚠️ 这里有一条必须校准的表述官方原文没有出现≥7.3或minimum 7.3。所以DVWA 要求 PHP ≥7.3这种写法属于口径失真——官方给的是低于 7.3 有已知问题且不给支持与建议用最新稳定版不是一条硬性的最低版本线。第二处误传更值得说。站内流传着DVWA 不支持 PHP 8但按官方一手事实去核是三条并存流传说法官方事实出处“DVWA 不支持 PHP 8”官方 README全文未出现 PHP 8.x 字样也未声明不支持 PHP 8DVWA README「PHP Versions」核验 2026-09-16同上官方 Dockerfile 基础镜像就是FROM docker.io/library/php:8-apache—— 官方自己以 PHP 8 构建并运行 DVWADVWA Dockerfile核验 2026-09-16同上issue #573 的真因是 PHP 未安装 / 未启用不是版本不兼容issue #573核验 2026-09-16三条里最硬的是第二条官方自己交付的容器基础镜像就是 PHP 8。这比README 没提到 8.x更能说明问题。社区里还流传过官方标注 Tested on PHP 5.4–7.4PHP 8 有三处硬性不兼容这类说法没有任何官方出处。可以写的表述是社区实践反馈中存在 PHP 8 环境下的安装问题但官方 README 未声明不支持且官方自身以 PHP 8 构建并运行 DVWA。再往硬性不兼容上写就超出依据了。那版本这一层到底什么时候才真的相关把几份官方口径并排看会清楚很多对象官方口径出处DVWA拒绝支持 PHP 5.x低于 7.3 有已知问题且不给支持建议用最新稳定版DVWA README核验 2026-09-16DVWA 官方容器基础镜像php:8-apacheDVWA Dockerfile核验 2026-09-16upload-labs手装推荐 5.2.17其他版本可能会导致部分 Pass 无法突破upload-labs README核验 2026-09-16upload-labs 官方容器基础镜像php:5.5-apacheupload-labsdocker/Dockerfile核验 2026-09-16PHP 官方 EOL 页PHP 5.5 已于2016-07-21EOL末版 5.5.38PHP 5.2 已于2011-01-06EOL末版即 5.2.17php.net/eol.php核验 2026-09-16最后一行补一句就够upload-labs 手装推荐的 5.2.17恰好是 PHP 5.2 分支的最后一个版本。这条只作事实引用本文不展开。5.1 想在本机拿到这些版本渠道也要看清如果你想在本机同时备好几个 PHP 版本站内最常见的两个渠道各有一条已核事实phpStudy 现名小皮面板官方站点为 xp.cn。它的 Windows 版官方产品页原文写的是「多版本切换运php5.2至php7.3任意切换」「PHP多版本共存 可为每个站点配置一个PHP版本」「多环境切换 ApacheNginxIIS」官方推荐版本为phpStudy v8.1。这里有两处要并列写清这段文案在子页/phpstudy、不在首页同一页面的另一处又写作「5.1-7.3」前后口径不一致。另外官方只写到php5.2这一分支未点名 5.2.17。核验 2026-09-16Homebrew tapshivammathur/php第三方 tap非 PHP 官方支持PHP 5.6 – 8.6NTS / ZTS / debug 均有运行于 Linux x86_64 / arm64 与 macOS arm64macOS Intel 不支持不含 5.2.x。核验 2026-09-16第二条的结论很直接它最低只到 5.6跑不了 upload-labs 手装推荐的 5.2.17——macOS / Linux 用户想对齐那个推荐版本容器是更省事的路子。这里只讲渠道事实不展开共存方案那是另一个题目。⚠️代码待验证# 确认自己实际在跑哪个 PHP 版本命令行 Web 响应头各看一遍php-vcurl-s-Ihttp://127.0.0.1:4280/|grep-i^server# 若是容器方式看容器实际使用的基础镜像dockerinspect--format{{.Config.Image}}容器名完整版环境对照表本章这几条官方口径 vs 官方容器实际镜像的并排对照连同三平台上的可行路径整理成了一张表放在资料包里扫码即可获取本章可以带走的一句版本这一层要放到最后看DVWA 的官方口径是三句话不是≥7.3不支持 PHP 8与官方 Dockerfile 直接冲突。六、两个官方一手事实冲突时怎么读第五章那张表里有两条并排放在一起的事实值得单独拎出来——它们是同一个项目的两份一手材料给出的答案却不一样。事实出处性质upload-labs 手装推荐 5.2.17其他版本可能会导致部分 Pass 无法突破官方 README「2.1 环境要求」官方文档给出的手装建议upload-labs 官方容器基础镜像 php:5.5-apache官方docker/Dockerfile官方自己交付的容器实际使用两条都是一手、都是官方但它们不是谁错了而是两个不同场景下的事实README 回答的是你自己装的时候推荐用哪个Dockerfile 回答的是官方交付容器时用的是哪个。这两个答案本来就可以不一样。正确的读法是并列写出来而不是挑一个用。挑一个用会出现两种失真只写官方推荐 5.2.17读者会以为官方容器也是 5.2.17只写官方容器是 PHP 5.5读者会以为手装也该用 5.5。同一份官方资产里还有一处同类的文档与实际不同步顺手一并给出项目官方文档写什么仓库实际是什么upload-labs 关数README 正文仍写目前一共20关仓库目录 Pass-01…Pass-21 共21个首页显示数字在2020-01-15提交49dcc6ca中由 20 改为 21upload-labs 运行平台原文「除了Pass-19必须在linux下其余Pass都可以在Windows上运行」这条说明只在 README 中出现Pass-19 目录的源码本身并不含这句话两条核验日均为 2026-09-16。这两张表合起来其实是同一条阅读方法读官方材料时先分清手里这份是文档还是交付物再决定它能代表什么。README 是写给人看的建议Dockerfile 是机器实际执行的东西两者不一致时不是二选一而是各自在自己的场景里有效。这种不同步还有一个共同成因文档与交付物不是同一时间写的也不会在同一时间更新。upload-labs 仓库的最后一次提交是2020-01-15此后未再更新核验 2026-09-16README 正文里的关数就停在了被写下时的那个状态而仓库里的目录结构是另一回事。知道这一点就不会在两者之间反复怀疑自己看错了。这套读法不只适用于 PHP 版本这一个问题。凡是官方同时给了文档和交付物的地方都要先问一句这两样是不是在回答同一个问题。若答案是否定的把两条都写出来比挑一条看起来更权威的更有用。⚠️代码待验证# 把文档口径与交付物口径分别取出来对照全部为只读查看gitclone--depth1https://github.com/c0ny1/upload-labsgrep-n-iphpupload-labs/docker/Dockerfilelsupload-labs|grep-c^Pass-最后一行只做一件事数一遍仓库里实际有多少个Pass-目录用它去和 README 正文里的数字对照。本章可以带走的一句官方文档与官方交付物不一致时不择一要并列——它们回答的是两个不同场景的问题。七、收束三步自查清单回到最初那个现象浏览器里显示的不是页面而是一整段代码文本。到这一章把它压成一份能对着用的清单。7.1 三步顺序不能颠倒步骤自查问题看什么对不上时的方向第一步服务器上 PHP 装上并启用了吗命令行php -vApache 有没有加载 PHP 模块安装 / 启用 PHP然后重启服务第二步中间件把它当 PHP 处理了吗Apache 的解析规则、后缀映射配置修中间件的解析配置第三步要用的扩展装了吗php -m对照官方 README 的组件行补装对应扩展并重启服务三步之外的第四步才是版本。而且走到版本这一步时要先把口径校准好——DVWA 是三句话拒绝 5.x / 低于 7.3 有已知问题且不给支持 / 建议最新稳定版不是≥7.3。三步里最容易漏的是第二步第一步不通页面根本打不开问题很显眼第三步不对页面至少还能出来。只有第二步错了才会出现PHP 明明装了、页面却是源码这种最像故障的现象也最容易被误判成版本问题。7.2 现象与步骤的对应关系现象通常卡在哪一步一整段源码文本第一步或第二步页面在但某个模块不对第三步页面在功能结果不对不在本文范围可能是业务逻辑或靶场设定本身7.3 三条要记住的口径DVWA 官方拒绝支持 PHP 5.x低于 7.3 有已知问题且不给支持建议用最新稳定版原文没有≥7.3这个写法。DVWA 不支持 PHP 8是误传官方 README 无 8.x 表述官方 Dockerfile 基础镜像就是php:8-apache。upload-labs 的 PHP 版本有两条并存的官方一手事实手装推荐 5.2.17官方容器用 PHP 5.5——两条都要写。三件事的顺序是固定的装上没有、当不当 PHP 处理、扩展装了没有版本排在三件事之后而且要先校准口径再谈。本文涉及的命令本机没有对应环境全部未实测代码块上方均保留了待验证标注文中所有版本、日期与官方原文以2026-09-16的核验结果为准。⚠️代码待验证# 三步自查一段一条逐段看结果php-v# 第一步PHP 在不在apachectl-M2/dev/null|grep-iphp# 第一步模块有没有启用grep-riphp/etc/apache2/mods-enabled/2/dev/null|head# 第二步解析配置php-m|grep-i-Egd|exif# 第三步扩展装了没有本章清单速查卡上面那张三步自查表加上现象对步骤的对应关系整理成了一页可以随时对照的卡片放在资料包里扫码即可获取本章可以带走的一句看到源码文本按装上没有 → 当不当 PHP 处理 → 扩展装了没有三步走版本放到最后并且先把官方口径校准。附表 A本文引用事实与官方出处对照表#事实照官方口径一手出处核验日期本文位置1DVWA 官方 PHP 口径为三句话拒绝支持 5.x低于 7.3 有已知问题且不给支持建议用最新稳定版原文无≥7.3或minimum 7.3https://raw.githubusercontent.com/digininja/DVWA/master/README.md2026-09-16第五章2DVWA 官方 README全文未出现 PHP 8.x 字样也未声明不支持 PHP 8同第 1 行2026-09-16第五章3DVWA 官方 Dockerfile 基础镜像 FROM docker.io/library/php:8-apache文件内无EXPOSE、无4280https://raw.githubusercontent.com/digininja/DVWA/master/Dockerfile2026-09-16第五章4DVWA issue#573现象为页面把 PHP 源码原样输出维护者digininja 本人答复「You haven’t got php installed or enabled. Follow the README for instructions」用户重装 PHP 后解决https://github.com/digininja/DVWA/issues/5732026-09-16第二、五章5「DVWA 不支持 PHP 8」是误传由第 1–4 行复合社区流传的Tested on PHP 5.4–7.4PHP8 三处硬性不兼容无官方出处第 1–4 行复合2026-09-16第五章6upload-labs 官方环境要求原文该处以表格形式给出以下为逐格要点PHP版本一行——推荐 5.2.17其他版本可能会导致部分Pass无法突破PHP组件一行——php_gd2, php_exif部分Pass依赖这两个组件中间件一行——设置Apache以moudel方式连接https://raw.githubusercontent.com/c0ny1/upload-labs/master/README.md2026-09-16第三、四、六章7upload-labs 官方容器基础镜像 php:5.5-apache不是README 手装推荐的 5.2.17容器内另装了gd、exif扩展https://raw.githubusercontent.com/c0ny1/upload-labs/master/docker/Dockerfile2026-09-16第四、六章8Pass-14 / Pass-15依赖php_gd2Pass-16依赖php_exif同第 6 行README 明列 php_gd2 / php_exif2026-09-16第四章9官方容器专门加了.php3/.phtml解析配置据docker/docker-php.conf提交说明添加php3 phtml解析https://github.com/c0ny1/upload-labs/tree/master/docker2026-09-16第三章10upload-labsPass-19 必须在 Linux 下运行其余 Pass 可在 Windows原文「除了Pass-19必须在linux下其余Pass都可以在Windows上运行」同第 6 行2026-09-16第六章11upload-labs实际为 21 关目录 Pass-01…Pass-21README 正文仍写目前一共 20 关首页显示数字在2020-01-15提交49dcc6ca中由 20 改为 21https://github.com/c0ny1/upload-labs2026-09-16第六章12PHP 官方 Unsupported Branches 页5.5 分支的 EOL 为21 Jul 2016末版 5.5.38、5.2 分支的 EOL 为6 Jan 2011末版 5.2.17即 5.5 于 2016-07-21 EOL5.2 于 2011-01-06 EOL、末版即 5.2.17https://www.php.net/eol.php2026-09-16第五章13phpStudy 现名小皮面板官方站点 xp.cnWindows 版官方产品页原文「多版本切换运php5.2至php7.3任意切换」「PHP多版本共存 可为每个站点配置一个PHP版本」「多环境切换 ApacheNginxIIS」官方推荐phpStudy v8.1https://www.xp.cn/phpstudy2026-09-16第五章 5.1 节14同页口径不一致一处写运 php5.2 至 php7.3另处写「5.1-7.3」且官方只写到php5.2分支未点名 5.2.17同第 13 行2026-09-16第五章 5.1 节15Homebrew tapshivammathur/php支持PHP 5.6 – 8.6NTS/ZTS/debug 均有运行于 Linux x86_64/arm64 与 macOS arm64macOS Intel 不支持不含 5.2.x第三方 tap、非 PHP 官方https://github.com/shivammathur/homebrew-php2026-09-16第五章 5.1 节16未核到phpStudy 官方当前是否直接提供 PHP5.2.17这个精确小版本未核到官方依据官方产品页只写到 php5.2 分支2026-09-16第五章 5.1 节本文未实测17未核到DVWA / upload-labs 在版本不匹配下的具体报错文本两份官方 README 均无任何版本级报错文本未核到官方依据→ 本文只写现象、不写文本2026-09-16全文本文未实测附表 B术语速查表术语一句话解释A 类现象源码原样输出浏览器拿到的是一整段代码文本说明这段代码没被当成 PHP 处理本文主线B 类现象元素不对页面框架能打开但图像处理、验证码一类模块异常通常指向某个 PHP 扩展没装module原文档写作moudelApache 加载 PHP 的方式upload-labs 官方 README 把它单列为环境要求的一行后缀映射中间件里哪种后缀的文件交给 PHP 解析的配置官方容器为.php3/.phtml专门加过解析配置php_gd2 / php_exifupload-labs 官方 README 明列的依赖组件前者对应 Pass-14 / Pass-15后者对应 Pass-16官方文档口径README 这类写给人看的建议例如手装推荐 5.2.17官方交付物口径Dockerfile 这类机器实际执行的东西例如基础镜像php:5.5-apache三步自查顺序装上没有 → 当不当 PHP 处理 → 扩展装了没有顺序固定版本排在其后生效配置不是当初装的时候怎么配的而是当前实际加载进服务的那份配置EOLEnd of Life官方不再支持某分支的时点PHP 官方 Unsupported Branches 页逐条列明一手事实并列同一项目两份官方材料结论不同时两条都写出来不挑一条用写在最后这篇用到的资料写这篇时我把页面显示成源码这件事按官方材料从下往上捋了一遍最费劲的是确认 DVWA 官方到底怎么表述 PHP 版本——最后落点是官方那三句话≥7.3那个流传很广的写法在原文里并不存在顺手整理了几份配套的东西靶场环境对照表DVWA、upload-labs 在 Windows / macOS / Linux 三平台的可行性与推荐路径Web 安全学习路线图从基础打牢到安全管理四个阶段各学什么常用靶场清单每个靶场练什么、适合哪个阶段资料是我自己整理的放在下面这个码上扫码即可获取添加时备注「靶场」优先通过。拿到之后建议先看靶场环境对照表那一份把自己手上那套环境官方文档要什么、官方容器实际用什么两栏先对齐。
返回列表