nikto 不检测 PHP 代码层漏洞,仅识别服务器配置错误、危险路径等线索;需手动加插件、调参并人工验证其发现的 PHP 相关条目。

nikto 默认不检测 PHP 特定漏洞,它只扫通用 Web 服务问题
很多人以为 nikto 能像 phpsploit 或 sqlmap 那样深入挖掘 PHP 代码层漏洞(比如变量覆盖、反序列化、eval() 注入),其实不是。它的核心能力是识别服务器配置错误、过期软件版本、危险目录/文件路径(如 /phpinfo.php、/test.php)、HTTP 头泄露等——这些只是“可能被利用”的线索,不是直接的 PHP 代码漏洞证据。
实际使用中常见误解:跑完 nikto -h http://target.com 没报出 preg_replace /e 或 unserialize() 问题,就以为“没 PHP 漏洞”,这会漏掉大量真实风险。
-
nikto不解析 PHP 源码,也不发送构造 payload 测试函数行为 - 它依赖预置的 DB(
/usr/share/nikto/plugins/db_tests)匹配 URL 模式和响应特征,对动态参数型漏洞基本无效 - 若目标用 Nginx + php-fpm,且隐藏了
.php后缀(伪静态),nikto默认规则大概率扫不到 PHP 文件
想让 nikto 发现更多 PHP 相关风险,得手动加参数和插件
默认扫描太保守,必须主动引导它关注 PHP 场景。重点不是“能不能挖”,而是“怎么让它更敏感地暴露 PHP 环境弱点”。
- 强制检查常见 PHP 调试/测试文件:
nikto -h http://target.com -Plugins "tests"(启用 tests 插件后会尝试访问/info.php、/php.ini、/shell.php等) - 指定端口并跳过 SSL 验证(很多本地 PHP 环境跑在 8080 或 HTTP):
nikto -h http://target.com:8080 -ssl 0 - 结合字典扩展探测路径:
nikto -h http://target.com -Tuning 5 -mutate 3(-Tuning 5启用“Web 服务器”类检测,-mutate 3尝试常见文件后缀变体,如.php3、.phtml) - 若已知用 Apache,可加
-Plugin apacheusers查找用户目录下的 PHP 脚本(如/~admin/test.php)
nikto 报出来的“PHP 相关条目”,哪些真该立刻跟进?
它输出里带 “php” 字样的结果,价值差异极大。别见“php”就紧张,也别全忽略。
立即学习“PHP免费学习笔记(深入)”;
- 高优先级(立刻手工验证):
/phpinfo.php、/install.php、/config.php.bak、Server: Apache/2.4.7 (Ubuntu) OpenSSL/1.0.1f PHP/5.5.9(版本号暴露) - 中优先级(需看响应内容):
/test.php?cmd=ls(如果返回了命令执行结果,说明已 RCE;如果 404 或报错,可能是误报) - 低优先级(大概率噪音):
/phpmyadmin/(没权限访问时 nikto 会乱报“可能存在”,但实际可能已改路径或加了认证) - 特别注意
OSVDB-编号:比如OSVDB-12184(PHP register_globals on)现在基本绝迹,但OSVDB-3268(phpinfo 泄露)至今有效
真正挖 PHP 漏洞,nikto 只是第一步,后面必须接人工验证
它发现的每个疑似点,都只是“入口线索”。比如扫出 /backup/config.php.zip,nikto 只告诉你“这个路径存在”,但 zip 是否可下载、解压后是否有硬编码密码、是否含数据库连接串,它一概不管。
- 所有
200 OK的 PHP 文件路径,必须用浏览器或curl -v看原始响应头和 body,确认是否真的可访问、是否回显敏感信息 - 遇到
phpinfo()页面,重点查disable_functions、allow_url_include、open_basedir设置,这些直接决定后续能否 getshell - 若 nikto 提示
HTTP TRACE method is allowed,这不是 PHP 漏洞,但可能辅助 XSS 或绕过某些 WAF,需单独测试 - 别依赖
-output自动保存报告就结束——nikto的文本输出里常混着调试信息(如[+]和[*]行),真正有用的只有标了+(发现)和-(排除)的那几行
最常被忽略的一点:nikto 对 POST 请求、JSON 接口、带 Token 的 API 完全无感。真正的 PHP 漏洞越来越多藏在 /api/v1/submit 这类路由里,而不在 index.php 上。











