介绍
Nikto是一款开源的Web服务器扫描工具,主要用于检测Web服务器的安全漏洞,如危险文件、错误配置、缺失补丁等。
支持扫描超过3300种潜在危险文件、CGI脚本,625种服务器版本及230种特定服务器问题,内置模板驱动的报告系统,支持自定义输出格式,可加载用户自定义检测规则(需配置user_scan_database.db文件) 。
准备工作
环境:
操作系统:kali 2025
靶场:dvwa靶场(apache5.4)(192.168.100.130)
kali系统自带nikto所以渗透测试前可以更新一下。
nikto -update
查看nikto插件库
nikto -list-plugins
常规扫描
nikto -h 目标地址
nikto -h 192.168.100.130

扫描结果大致意思如下:
- 缺少X-Frame-Options头:为了防止点击劫持攻击,需要在HTTP响应头中添加X-Frame-Options头。可以将其设置为DENY、SAMEORIGIN或ALLOW-FROM来限制iframe的使用。
- 缺少X-Content-Type-Options头:为了确保浏览器正确渲染内容,可以在HTTP响应头中添加X-Content-Type-Options头,并将其设置为nosniff。
- PHP版本过时:PHP 5.4.16已经过时,建议升级到至少PHP 8.1.5。
- Apache版本过时:Apache 2.4.6已经过时,建议升级到至少Apache 2.4.54。
- 允许HTTP TRACE方法:HTTP TRACE方法可能导致跨站追踪(XST)攻击,建议禁用此方法。
- phpinfo()暴露系统信息:通过访问/info.php文件,可以获取到大量系统信息。建议删除或限制对该文件的访问。
- 目录索引:/icons/目录下的文件可以被直接访问,建议禁用目录索引。
- 远程文件包含(RFI):/info.php?file=http://blog.cirt.net/rfiinc.txt存在远程文件包含漏洞,建议修复该问题。
如果出现OSVDB-编号,说明网站存在该漏洞,可以到漏洞平台查询具体是什么漏洞。
指定端口扫描
nikto -h 目标地址 -p 端口
nikto -h 192.168.100.130 -p 80

在不指定端口的情况下,nikto默认扫描80端口。
目录猜解
nikto -h 目标地址 -C all //扫描所有CGI目录
nikto -h 192.168.100.130 -C all

扫描敏感目录
nikto -h 网站地址
nikto -h www.sqlibs.com

保存扫描信息
nikto -h 目标地址 -output 指定文件路径
nikto -h 192.168.100.130 -output /root/nikto.txt
扫描结果将会保存到/root/nikto.txt文件里。
kali nikto扫描器