Nikto扫描后显示“403 Forbidden”错误,怎么解决?

爱学习的莉莉 阅读 31

用Nikto扫描本地测试服务器时,为什么总提示403 Forbidden?

我刚用XAMPP搭了个本地测试环境,想用Nikto检测漏洞。运行命令nikto -h http://localhost:8080后,日志里全是403 Forbidden on /test.html这类报错,但访问页面明明能正常打开。

试过把robots.txt改为空文件,还加了-C all参数,结果还是一样。难道是Apache配置限制了扫描?该怎么调整才能让Nikto正常运行?

我来解答 赞 5 收藏
二维码
手机扫码查看
2 条解答
程序猿春依
我之前踩过这个坑,403 问题基本就是权限配置的问题。Nikto 扫描的时候会尝试访问各种路径,而 Apache 的默认配置对目录访问权限限制比较严格,所以会返回 403。

你用的是 XAMPP,那重点是你 Apache 的配置文件,比如 httpd.confhttpd-xampp.conf。下面几个步骤我当时改了就通了:

1. **修改 Apache 的主配置文件 httpd.conf:**
找到类似下面这段:
<Directory />
AllowOverride none
Require all denied
</Directory>

改成:
<Directory />
AllowOverride none
Require all granted
</Directory>

这个配置允许所有访问根目录,但要注意安全,只在测试环境这么干。

2. **检查你的 httpd-xampp.conf 文件:**
这个文件里可能有很多安全限制,比如针对 /xampp/phpmyadmin 等路径的限制。可以暂时注释掉这些限制,比如:
# <Location "/security">
# Require local
# </Location>

把这些注释掉或者改成 Require all granted

3. **重启 Apache:**
修改完配置后别忘了重启服务,不然不生效。

4. **用 -Tuning 参数控制扫描类型:**
你提到用了 -C all,但有些路径 Nikto 本来就会疯狂扫,比如 /test.html,你可以用 -Tuning 排除掉一些路径或者使用 x 排除误报,例如:
nikto -h http://localhost:8080 -Tuning x


如果你只是想跑 Nikto 检测基本安全问题,上面几步做完应该就能看到正常扫描结果了。注意扫描完恢复配置,别让本地测试服务器开着“裸奔”模式太久。
点赞 6
2026-02-04 07:08
慕容艳艳
403是因为Apache配置限制了目录访问。直接修改/opt/lampp/etc/extra/httpd-xampp.conf(XAMPP路径可能不同),找到段落,把Require local改成Require all granted。重启Apache试试。
Require all granted

记得别在生产环境这么配,不安全。
点赞 3
2026-02-01 23:27