菜单

使用指南

相关源文件

本文档提供了关于如何有效使用SecLists存储库进行安全测试的全面指南。它涵盖了选择适当的单词列表的最佳实践、与常用安全工具的实际示例以及最大化安全评估有效性的策略。

有关如何为SecLists做出贡献的信息,请参阅为SecLists做出贡献

存储库概览

SecLists被组织成几个核心的单词列表类别,每个类别都为特定的安全测试任务而设计

类别目的关键目录
发现列表查找隐藏内容/Discovery/Web-Content/, /Discovery/DNS/
Fuzzing列表测试输入验证/Fuzzing/
密码列表身份验证测试/Passwords/
用户名列表用户枚举/Usernames/

该存储库通过自动化流程定期更新,其中一些单词列表(如trickest-robots-disallowed-wordlists)会自动刷新以保持其有效性。

来源:README.md11-13 .bin/wordlist-updaters/status.json1-8

单词列表选择策略

理解单词列表类型

SecLists为不同的安全测试场景提供了专门的单词列表

Web内容发现列表

  • common.txt (~4,600 条目) - 基本文件和目录
  • combined_words.txt - 多个单词列表的组合(big.txt, common.txt, raft 列表)
  • combined_directories.txt - 全面的目录发现列表
  • raft-large-directories.txt - 大规模目录测试

子域名发现列表

  • combined_subdomains.txt - 全面的子域名单词列表

API发现列表

  • api/actions.txt - 常见的API动词 (GET, POST, 等)
  • api/objects.txt - 常见的API资源 (user, account, 等)

Robots.txt 禁止访问的路径

  • trickest-robots-disallowed-wordlists/top-100.txt - 最常见的禁止访问路径
  • trickest-robots-disallowed-wordlists/top-1000.txt - 扩展的禁止访问路径
  • trickest-robots-disallowed-wordlists/top-10000.txt - 全面的禁止访问路径

单词列表选择图

来源:Discovery/Web-Content/README.md19-32 Discovery/Web-Content/common.txt1-100 Discovery/Web-Content/combined_words.txt1-100 Discovery/Web-Content/combined_directories.txt1-100 Discovery/DNS/combined_subdomains.txt1-20 Discovery/Web-Content/api/README.md1-8

选择正确的单词列表

选择安全测试单词列表时,请考虑以下因素:

  1. 目标类型:Web应用程序、API或网络服务需要不同的单词列表
  2. 时间限制:快速扫描使用较短列表,彻底测试使用较长列表
  3. 目标技术:当已知平台时,使用特定于CMS的列表(WordPress、Drupal等)
  4. 测试目标:内容发现、凭证测试或Fuzzing

推荐的进展

  1. 从较短的列表开始(common.txt
  2. 转向中等长度的列表(raft-medium-directories.txt
  3. 使用更长的列表进行全面测试(combined_directories.txt
  4. 根据发现情况补充特定列表

来源:Discovery/Web-Content/trickest-robots-disallowed-wordlists/top-100.txt1-100 Discovery/Web-Content/trickest-robots-disallowed-wordlists/top-1000.txt1-100

实际用法示例

Web内容发现

Web内容发现有助于识别Web应用程序上的隐藏文件、目录和端点。

使用Gobuster进行基本目录暴力破解

使用ffuf进行更彻底的发现

查找特定CMS内容

全面的Web内容发现工作流程

来源:Discovery/Web-Content/CMS/trickest-cms-wordlist/woocommerce.txt1-100 Discovery/Web-Content/CMS/trickest-cms-wordlist/drupal.txt1-100 Discovery/Web-Content/common.txt1-100

子域名枚举

子域名枚举有助于通过发现目标域的子域名来识别额外的攻击面。

使用amass和SecLists

使用subfinder

来源:Discovery/DNS/combined_subdomains.txt1-20 Discovery/DNS/README.md1-7

API端点发现

API端点发现有助于识别API端点以进行进一步测试。

使用ffuf发现API端点

测试API资源

来源:Discovery/Web-Content/api/README.md1-8

密码和身份验证测试

在安全评估期间使用密码列表进行授权身份验证测试。

使用Hydra进行Web表单身份验证测试

SSH身份验证测试

来源:Passwords/README.md1-5 Usernames/README.md1

集成的安全测试工作流程

以下图表说明了如何将SecLists作为全面的安全测试方法的一部分使用

来源:README.md11-13 系统架构图

使用SecLists的最佳实践

  1. 从小处着手,然后扩展:在转向更长的列表之前,先从较短的列表开始
  2. 在适当的时候组合单词列表:存储库包括预先组合好的列表,如combined_words.txtcombined_directories.txt
  3. 使用特定技术的列表:在已知技术的情况下应用特定CMS的列表
  4. 调整扫描参数:在彻底性和资源限制之间取得平衡
  5. 有效过滤结果:使用响应代码、大小和内容过滤来减少噪音
  6. 定期更新:保持SecLists的本地副本最新,以受益于新单词列表

“robots disallowed”单词列表特别有价值,因为它们包含许多网站上通常隐藏在robots.txt文件中的路径,这通常会导致敏感内容被发现。

来源:Discovery/Web-Content/README.md19-32 .bin/wordlist-updaters/status.json1-8

与SecLists配合良好的常用工具

工具类别工具名称SecLists的常见用法
内容发现gobustergobuster dir -u https://example.com -w /path/to/SecLists/Discovery/Web-Content/common.txt
内容发现ffufffuf -u https://example.com/FUZZ -w /path/to/SecLists/Discovery/Web-Content/raft-medium-directories.txt
子域名枚举amassamass enum -w /path/to/SecLists/Discovery/DNS/combined_subdomains.txt -d example.com
子域名枚举subfindersubfinder -d example.com -w /path/to/SecLists/Discovery/DNS/combined_subdomains.txt
密码测试hydrahydra -l admin -P /path/to/SecLists/Passwords/Common-Credentials/10k-most-common.txt ssh://example.com
Fuzzingwfuzzwfuzz -c -z file,/path/to/SecLists/Fuzzing/XSS/XSS-Cheat-Sheet.txt https://example.com/search?q=FUZZ

来源:系统架构图

结论

SecLists为安全专业人员提供了各种安全测试场景的全面单词列表集合。通过了解如何为不同场景选择和使用合适的单词列表,您可以显著提高安全评估的有效性。

请记住,基于单词列表的测试的有效性不仅取决于列表的全面性,还取决于它们的应用方式。从有针对性的小型列表开始,然后根据需要逐步转向更大的列表,同时尽可能使用特定技术的列表。

该存储库会定期更新,因此请确保您使用的是最新版本,方法是保持本地副本最新,或使用Kali Linux和BlackArch等安全专业发行版提供的包。

来源: README.md11-93