文章总结: 本文阐述红队构建隐藏目录字典的技巧。通过指纹识别确定技术栈,收集特定路径并利用脚本生成组合字典;最后用Gobuster测试。文章强调定制字典能发现通用工具遗漏的敏感入口与配置文件,建议结合BurpSuite及关注备份文件,以精准定位漏洞,提升渗透测试效率。 综合评分: 89 文章分类: 红队,渗透测试,WEB安全,安全工具
【红队入门】如何构建隐藏目录字典集
原创
破天KK
KK安全说
2025年12月31日 10:42 北京
很多人通过后台私信我,询问如何根据自身需求或目标网站的技术创建自定义关键词列表。所以~~~
为什么自定义单词列表很重要
默认字典虽然很好用,但可能会遗漏特定框架或应用程序特有的目录和端点。自定义字典可以让你:
- 针对特定框架的目标路径:像 WordPress、Joomla 或 Django 这样的 CMS 平台通常具有独特的目录结构。
- 适应技术栈:Python 应用可能具有
.py端点,而 Node.js 应用可能暴露.js文件。 - 关注可能的入口点:通过了解技术栈,您可以更准确地猜测敏感目录和文件。
创建自定义单词列表的分步指南
1. 指纹识别技术
首先确定目标网站的技术栈:
- 使用WhatWeb或Wappalyzer等工具来检测框架、编程语言和 CMS。
- 检查 HTTP 标头、cookie 和元标签以获取技术线索。
例如:
- 文件
wp-content夹表示 WordPress。 - 扩展程序
.php建议使用基于 PHP 的应用程序。
- 收集框架特定路径
研究已识别技术的默认路径、端点和敏感文件。以下是一些示例: WordPress:
/wp-admin(仪表盘登录区域)/wp-content/uploads(用户上传的文件)/wp-config.php(包含数据库凭据的配置文件)
Django:
/admin(管理员界面)/static(静态文件,例如 CSS 和 JavaScript)/media(用户上传的媒体文件)
Node.js:
/server.js(服务器端入口点)/package.json(关于依赖项和项目设置的元数据)/api/v1(/api/v2常用 API 端点)
探索示例命令:
- 用于
curl手动测试路径:
curl -I <http://example.com/wp-config.php>
curl -I <http://example.com/static>
- 用于
wget递归下载:
wget -r -np <http://example.com/admin>
3. 利用公共存储库
浏览 GitHub 代码库、文档和论坛以获取更多信息。搜索诸如“默认目录结构”或“常用端点”之类的关键词,以查找特定框架的相关信息。
搜索示例:
- 在 GitHub 上搜索:
"wp-config.php" in:path - 寻找
.env例子:"dotenv example"
4. 合并已知词汇表
合并通用列表,例如:
- SecLists:一套全面的安全测试字典。
- FuzzDB:用于模糊测试和发现的专用有效载荷。
然后通过附加框架特定的路径,使用自定义条目来增强它们。
5. 搜索在线词汇表
使用特定技术时,您可以在网上搜索相关的关键词列表。例如:
- 如果目标使用 PHP,请查找 PHP 特有的单词列表:
"PHP directory brute force wordlist"或"PHP endpoint wordlist GitHub"。 - 对于基于Node.js的应用程序,请搜索Node.js相关列表:
"Node.js wordlist GitHub"。
搜索命令示例:
- 使用搜索引擎或 GitHub:
site: github.com "PHP wordlist" site:github.com "Node.js endpoint wordlist"
这些列表通常包含维护良好的特定框架路径,因此是很好的起点。
6. 自动创建单词列表
自动化是高效生成单词列表的关键。以下是具体操作方法:
步骤 1:定义框架路径
framework_paths = [ "/admin" , "/static" , "/login" , "/config" ]
parameters = [ ".php" , ".js" , ".json" , ".env" ]
custom_wordlist = []
for path in framework_paths:
for param in parameters:
custom_wordlist.append( f" {path} {param} " )
with open ( "custom_wordlist.txt" , "w" ) as file:
file.write( "\n" .join(custom_wordlist))
步骤 2:使用 Bash 实现自动化
使用 Bash 脚本可以快速进行组合操作:
paths=( "/admin" "/static" "/config" )
extensions=( ".php" ".json" ".env" )
for path in " ${paths[@]} " ; do
for ext in " ${extensions[@]} " ; do
echo "$path $ext " >> custom_wordlist.txt
done
done
为什么要自动化?
自动化确保:
- 可扩展性:快速生成大量列表。
- 精确度:包含与框架相关的路径和扩展。
- 效率:节省时间并减少人为错误。
7. 测试你的单词表
通过对目标数据库运行字典来验证其有效性:
Gobuster 示例:
gobuster dir -u <http://target-site.com> -w custom_wordlist.txt -x php,js,jsondir -u <http://target-site.com> -w custom_wordlist.txt -x php,js,json
FFUF 示例:
ffuf -u <http://target-site.com/FUZZ> -w custom_wordlist.txt
真实案例:发现隐藏目录
想象一下,你的目标是一个基于 Node.js 的应用程序。通过识别 <script> 标签,你可以发现一些敏感的元数据,例如包版本和依赖项。将这些信息与包含 <script> 、<script> 和/package.json``<script> 的字典结合起来,你就能发现一个未公开的管理面板!/api/v1``/api/v2``/admin
在另一个案例中,攻击 WordPress 网站会发现一个/wp-config.php由于权限不当而可访问的文件。该文件包含数据库凭据,可能为进一步的攻击打开方便之门。
额外提示
- 使用 Burp Suite:从拦截的流量中捕获常见路径和参数。
- 分析错误消息:404 或 403 错误通常会揭示命名规则。
- 关注备份文件:添加诸如
.bak、.old或 之类的扩展名~,以查找遗忘的备份。
最后
创建自定义字典文件不仅仅是猜测目录;它是一种发现隐藏漏洞的策略性方法。通过针对目标技术定制字典文件并利用自动化工具,您可以解锁通用工具可能遗漏的秘密。
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:KK安全说 破天KK《【红队入门】如何构建隐藏目录字典集》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论