Nmap不能直接扫描PHP版本或漏洞,仅能发现Web端口、获取基础服务指纹并辅助推测PHP应用存在;需结合特定脚本(如http-php-version、http-enum)探测风险路径,并依赖人工验证响应内容与配置。
直接用
扫 PHP 服务?别白忙——它不识别 PHP 版本,也不查 PHP 漏洞
很多人以为
扫出
或
就等于“扫到了 PHP”,其实不是。Nmap 默认只识别 Web 服务器(如 Apache/Nginx)、后端语言(如 PHP)是靠响应头或路径特征推测的,且极不可靠。它不会告诉你当前运行的是
还是
,更不会报出
泄露、
RCE 或
代码执行这类漏洞点。
真正能定位 PHP 相关漏洞的,是后续的主动探测和人工验证。Nmap 的作用仅限于:发现开放的 Web 端口、获取基础服务指纹、辅助判断是否可能运行 PHP 应用。
可看响应头里有没有
若响应头被清理,可加
(需 Nmap 7.90+,且依赖
、
等默认路径试探)
别依赖
的结果——它成功率低,且会触发 WAF 日志,容易被封
怎么让 Nmap 帮你找到 PHP 漏洞的“入口”?重点扫这些路径和行为
Nmap 本身不挖漏洞,但它的脚本可以帮你快速定位常见 PHP 风险暴露点。关键是选对脚本,而不是盲目扫全端口。
:针对已知高危 PHP 应用路径做试探
:枚举常见 PHP 调试/信息泄露文件(如
、
、
、
)
如果扫到
,立刻补扫:
(对应老版本
php
MyAdmin 的未授权访问和 XSS)
注意:
默认不扫
后缀,要加
或自定义
的
参数
扫出来一堆
的 PHP 文件,下一步必须人工验证
Nmap 返回
并不等于“漏洞确认”。很多是空文件、重定向、或返回 200 但内容为空。真实风险要靠手动请求+观察响应体。
PHP 8.5.5
PHP 8.5.5 是 PHP 8.5 分支的维护更新版本。该版本延续了“小步快跑”的迭代逻辑,通过深度错误修复、底层性能微调以及安全加固,旨在为开发者提供一个更健壮、更高效的运行环境。该版本严格遵守语义化版本规范,不包含破坏性变更。
下载
立即学习
“
PHP免费学习笔记(深入)
”;
用
先看状态码和头,再用
看实际输出
特别留意是否含
、
、
(虽已废弃,但老环境仍有影响)等配置项
遇到
类参数,别只信 Nmap 的
脚本结果——它误报率高。改用
更准
如果 Nmap 报出
(ThinkPHP 5.0.23 RCE),必须验证:发
看是否返回
错误或直接执行命令
Kali 里 Nmap 扫 PHP 的几个硬坑,不踩就少浪费两小时
在 Kali 上跑 Nmap 扫 PHP 相关内容,最容易卡在权限、脚本更新、WAF 干扰这三块。
默认
安装不含最新脚本:运行
再扫,否则
可能根本不存在
非 root 权限下
(SYN 扫描)会被拒绝,而
(TCP connect)又容易被 WAF 记为扫描行为——建议先用
快速确认端口,再切普通用户跑
遇到目标返回
但你知道有 PHP 文件(比如从 JS 或注释里看到
),别指望 Nmap 自动绕过。得自己构造 User-Agent、加 Referer、或用
强制 POST 触发解析
默认只扫前 100 个路径,遇到自定义路径(如
)大概率漏掉——必须配合
查看扫描过程,或换
/
补全
真正决定能不能挖到 PHP 漏洞的,从来不是 Nmap 扫出了多少行 200,而是你有没有盯着响应体里的
输出、有没有在
参数里试
、有没有对
的输入点做 POP 链验证。Nmap 只是帮你把门推开一条缝,后面全是手上的活。
nmapnmap -sVhttphttpsPHP 7.4.338.1.20phpinfo()unserialize()preg_replace()nmap -p 80,443,8080 -sV --script=http-title,http-headers,http-methodsX-Powered-By: PHP/8.0.30--script=http-php-version/phpinfo.php/info.phphttp-php-versionnmap -p 80,443 --script http-phpmyadmin-dir-traversal,http-phpself-xss,http-php-versionnmap -p 80 --script http-enum --script-args http-enum.category=php/phpinfo.php/test.php/info.php/install.phpphpMyAdminnmap -p 80 --script http-vuln-cve2012-5806,http-vuln-cve2013-3238http-enum.php--script-args http-enum.category=phphttp-enum.nsepathsHTTP 200/phpinfo.php → 200 OKcurl -I http://target/phpinfo.phpcurl http://target/phpinfo.php | head -30disable_functionsallow_url_include=Onmagic_quotes_gpc=Off/index.php?file=http-sql-injectionffuf -u "http://target/index.php?file=FUZZ" -w /usr/share/wordlists/seclists/Fuzzing/LFI-LISTS.txthttp-vuln-cve2018-19518POST /index.php?s=captchaeval()nmapsudo nmap --script-updatedbhttp-php-version-sS-sTsudo nmap -sS -p 80--scriptHTTP 403main.php--data "a=1"http-enum/app/web/index.php-vgobusterffufphpinfo()$_GETphp://filterunserialize()