不能。dirb默认只爆破目录,不扫描.php文件,需配合-X php参数和PHP专用字典才能有效探测PHP入口文件。

dirb 能不能直接爆破 PHP 文件?
不能。dirb 默认只爆破目录,不扫描 .php 后缀文件——它用的字典(如 /usr/share/dirb/wordlists/common.txt)里绝大多数是目录名(admin/、backup/),几乎没有 login.php 这类文件名。
想靠 dirb 找 PHP 入口,必须换字典、改参数,否则扫出来的全是 403/404,白忙活。
- 默认命令
dirb http://target.com只发 GET 请求到路径末尾加/的目录形式,比如http://target.com/admin/ - 要扫
login.php,得让 dirb 发请求到http://target.com/login.php,这就得用带.php的字典 + 关闭自动加斜杠 - 关键参数:
-X php(强制追加.php后缀)、-r(递归)不是必须,-S(静默模式)反而容易漏信息,建议不用
怎么配 dirb 扫 PHP 入口文件?
实际操作中,最稳的方式是组合两个动作:先扫常见目录结构,再针对疑似目录用 PHP 专用字典二次爆破。
- 第一步,快速探路:
dirb http://target.com /usr/share/dirb/wordlists/common.txt -o dir_scan.log,看有没有/admin/、/test/、/phpmyadmin/这类明显可深入的路径 - 第二步,精准打击:挑出有响应的目录(比如
/test/),用 PHP 字典扫里面可能存在的入口:dirb http://target.com/test/ /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -X php -o php_scan.log - 注意:
-X php是核心,它会让 dirb 把字典每一行都拼上.php,比如login→http://target.com/test/login.php - 别用
common.txt直接加-X php,它里面的词太泛(images、css),扫出来一堆 404;推荐用directory-list-2.3-medium.txt或自己整理的php-entry.txt(含index、login、upload、config等)
扫出来 200 却打不开?可能是重定向或权限控制
dirb 返回 200 不代表你能访问或利用,尤其 PHP 入口常被做手脚:
立即学习“PHP免费学习笔记(深入)”;
- 返回 200 但内容是空页或跳转 JS?检查响应头:
curl -I http://target.com/login.php,看有没有Location:或Set-Cookie暗示登录态校验 - 页面显示 “Access Denied” 但 HTTP 状态是 200?说明后端做了逻辑拦截,不是没权限,而是没绕过验证(比如缺 session、没带 token)
- 返回 200 且有 PHP 代码泄露(比如
)?恭喜,目标开了短标签或配置错误,可尝试.php~、.php.bak看源码 - dirb 默认不处理 301/302 跳转,如果入口被重定向到登录页,它会记作 302 并跳过——加
-f参数让它跟随跳转,但小心陷入无限重定向循环
比 dirb 更适合找 PHP 入口的替代工具
dirb 已停止维护,Kali 新版默认不预装,且不支持并发、无智能过滤,真挖 PHP 漏洞时容易卡在低效环节。
-
gobuster是当前首选:gobuster dir -u http://target.com/test/ -w /path/to/php-wordlist.txt -x php -t 50,速度快、支持多线程、自动去重 301 -
ffuf更灵活,适合模糊测试:ffuf -u http://target.com/test/FUZZ.php -w wordlist.txt -t 100 -ac,-ac自动过滤常见无意义响应(如大小=1234 的 200) - 别忘了手动验证:扫出
/test/info.php,立刻curl http://target.com/test/info.php看是否输出 PHP 配置——这是判断是否能执行 PHP 的第一手证据 - dirb 的
.php扫描本质是“猜文件名”,真正挖漏洞得往后走:文件包含(?page=../../etc/passwd)、代码执行(?cmd=id)、反序列化——这些 dirb 帮不上忙
dirb 只是个敲门砖,扫出 PHP 文件只是开始,后续是否能触发漏洞,取决于目标用了什么框架、开了什么函数、有没有过滤逻辑。别在爆破环节卡太久,看到疑似入口就切到手工验证和交互式测试。











