跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

kali怎么挖php漏洞_使用nmap扫描php服务找漏洞点【步骤】

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

相关文章