
1. 信息收集的核心思想与资产梳理信息收集是Web渗透测试的基石其广度与深度往往决定了最终测试成果的上限。在进阶层面信息收集不再仅仅是简单地运行几个工具而是需要建立系统化的攻击面管理思维。这意味着我们需要站在攻击者的视角尽可能全面地绘制出目标组织的数字资产地图包括那些容易被遗忘的角落如测试系统、老旧子系统、第三方代码托管平台等。对于大型目标往往存在多个子公司或独立业务单元。主域名通常对应着集团的门户防御相对严密。真正的突破口往往隐藏在边缘子公司或特定业务系统的子域名中因为不同团队的安全运维水平参差不齐。因此渗透测试的起点不应仅仅是目标主站而应是所有关联的Web资产。资产梳理通常遵循以下路径从已知的主域名出发通过多种手段收集子域名解析子域名获取IP地址再通过对IP进行端口扫描和服务识别最终将所有存活且提供Web服务的资产整合为一份目标清单。这个过程需要结合自动化工具与手动分析以确保资产的完整性和准确性。2. 域名与子域名的多维收集子域名收集是扩大攻击面的首要环节。单一工具的查询结果往往是片面的进阶的收集策略强调多维数据源聚合。这通常包括三个层面利用搜索引擎和第三方聚合服务如RapidDNS、Censys进行被动收集利用强大的字典进行爆破式的主动枚举以及从公开的证书透明度Certificate Transparency日志中解析域名。在实际操作中可以综合运用多种工具来完成这一任务。例如使用Sublist3r可以快速集成多种搜索引擎的结果而OneForAll这类强大的工具则集成了更多API接口和枚举模块能提供更全面的数据。对于追求效率和实时性的场景也可以使用在线侦察平台如Spyse现部分功能整合于其他平台它们通常能在几分钟内返回数百甚至上千个子域名。此外像ksubdomain这样的高速DNS爆破工具配合高质量的字典也能在极短时间内通过枚举发现大量未被公开记录的子域名。表常用子域名收集方法对比方法类别原理/工具示例优势与劣势搜索引擎与第三方聚合利用Google、Bing、Censys、RapidDNS等公开数据源被动、隐蔽性好但数据可能滞后或不完整主动DNS爆破Sublist3r、OneForAll、ksubdomain 强大字典发现未知域名的能力强但可能被日志记录需要优质字典支持证书透明度日志crt.sh、Censys等平台查询数据实时、准确尤其对于启用了HTTPS的站点是必查项3. IP端口服务与Web指纹识别获得子域名列表后下一步是将其解析为IP地址并对这些IP进行端口扫描。实战中并不需要对所有65535个端口进行全扫描因为这会耗费大量时间。更高效的做法是基于一份经过实战检验的TOP端口字典进行扫描例如包含22、80、443、8080、8443以及各类常见数据库、中间件管理端口。Nmap是这个阶段的核心工具其-sV参数可以进行服务版本探测-sC可以运行默认脚本帮助我们快速了解端口上运行的服务类型和版本信息。接下来是Web指纹识别。对于识别出的Web服务需要进一步分析其使用的技术栈包括Web服务器如Nginx、Apache、后端编程语言如PHP、Java、前端框架如Vue.js、React以及内容管理系统如WordPress、Discuz。这一步骤至关重要因为后续的漏洞挖掘将围绕这些具体技术展开。浏览器插件Wappalyzer是手工分析的首选工具能够快速、直观地展示网站所用的技术组件和版本。对于自动化批量处理则可以借助Ehole或TideFinger等指纹识别工具对大量资产进行快速标记和分类。表核心信息收集工具链工具名称主要用途进阶技巧/实战示例Sublist3r/OneForAll子域名枚举与收集结合多个数据源定期更新字典以提高爆破命中率Nmap端口扫描与服务识别-sV -sC -O组合参数进行深度探测使用--scriptvuln进行漏洞初步扫描Wappalyzer浏览器指纹识别插件快速识别前端框架如Vue、打包器如Webpack为后续JS接口提取做准备Gobuster/Dirsearch目录和文件爆破结合/usr/share/wordlists/dirbuster/字典对API路径进行专门FUZZwaybackurls/gau历史URL收集从互联网档案馆Archive.org等源头拉取历史快照中的URL发现隐藏端点4. 基于JS文件的接口提取与隐式资产现代Web应用特别是单页应用大量使用JavaScript来处理业务逻辑。这些JS文件包括主文件和异步加载的chunk文件成为了信息收集的“金矿”。仅仅依赖插件自动发现的接口往往是不全面的因为许多API端点是通过JS动态拼接或仅在特定条件下才发起请求。进阶的信息收集必须包含对JS文件的深度剖析。通过浏览器开发者工具的“网络”标签可以在与页面交互时实时捕获后端API请求。更彻底的方法是将所有JS文件下载到本地使用正则表达式如\“[a-zA-Z0-9_/]{1,50}\/[a-zA-Z0-9_]{1,50}\”或工具如LinkFinder、JSFinder批量提取其中的URL路径和敏感参数。某次实战中攻击者正是通过分析Vue.js站点的打包文件发现了未被任何前端页面引用的相对路径接口/role/register。结合已注册的低权限JWT令牌和页码参数pageNum的FUZZ最终导致了大量师生敏感信息的泄露。这个案例完美诠释了从“显性”功能点到“隐性”API资产的思维跃迁。此外收集历史URL也是一项高效的OSINT技术。像waybackurls或gau这样的工具可以查询Internet Archive等公共爬虫数据库获取目标站点在过去被爬取过的所有URL记录。这些历史快照中可能包含着现已下线但依然存在的旧版API、测试页面或备份文件为渗透测试提供独特的切入点。5. 高级OSINT与社工信息收集信息收集的触角不应局限于目标域名本身还应延伸到整个互联网的公开情报中。Google Hacking是其中最基础但也最强大的技术。通过精心构造的搜索语法可以精准地定位到目标的敏感文件、暴露的后台、甚至源代码仓库。例如搜索site:edu.cn intext:操作手册|使用手册可以轻松找到许多高校系统的默认密码或测试账号。对于代码托管平台GitHub的监控同样不可或缺。开发者有时会不慎将包含密钥、Token、数据库连接字符串甚至明文密码的代码提交到仓库中。通过搜索目标域名结合关键字如password,secret,api_key或者在特定语言如JavaScript、Python的代码中寻找泄露信息往往能获得意想不到的收获。国内的知识库平台如语雀也是重要的信息源。许多组织内部使用语雀进行文档协作但由于权限配置不当其中的“公开知识库”可能被搜索引擎收录。搜索“操作手册”、“白皮书”等关键词有时能直接找到包含系统部署细节或管理员默认口令的文档。更有甚者在一些二手交易平台如闲鱼上有人公开出售高校图书馆的访问权限或共享账号这种边缘渠道在某些特定场景下也能成为信息收集的补充。表Google Hacking常用语法示例搜索意图Google语法示例潜在收益查找登录后台site:target.com inurl:login | admin | manage发现隐藏的管理入口查找敏感文件site:target.com filetype:pdf | xls | docx可能获取包含内部信息的文档寻找代码泄露site:pastebin.com target.com可能在公开剪贴板发现代码或配置片段寻找测试账号site:target.com intext:默认密码 | 测试账号直接获取可用的测试凭证探测漏洞参数site:target.com inurl:redirect寻找可能存在重定向或SSRF漏洞的端点6. 云资产与移动端资产拓展随着企业架构上云信息收集的范围也需要拓展到云资产。这包括识别目标使用的云存储服务如AWS S3、阿里云OSS、Serverless函数、以及容器服务等。通过特定的语法可以在搜索引擎或云平台本身进行搜索。例如site:s3.amazonaws.com 目标公司名或site:firebaseio.com 目标公司名有可能找到配置错误、可公开读写的存储桶其中往往包含着大量敏感数据。移动端应用APP同样是一个庞大的攻击面。在渗透测试中如果目标提供了APP对其进行反编译和静态分析是必须的步骤。使用jadx、apktool等工具可以将APK或IPA文件反编译为Java或Smali代码。分析的重点在于查找硬编码的API密钥、后端接口地址以及加密算法。有时APP中还会包含一些在Web端没有的功能或调试接口这些接口的权限校验可能相对薄弱容易成为突破口。某次测试中通过反编译APP找到了隐藏的API接口拼接后发现存在未授权访问最终获取了大量用户信息。7. 信息整合与自动化工作流面对收集到的成百上千条分散的数据——子域名、IP、端口、URL、JS接口、敏感参数——如何高效地整合、去重并找出最有价值的攻击目标是进阶阶段的必修课。这一过程通常需要借助脚本和自动化工具来构建工作流。一个典型的工作流可以是这样的输入一个或多个主域名。子域名收集同时运行OneForAll和subfinder收集结果。存活探测与IP解析使用httpx或Ehole对收集到的域名进行批量HTTP存活探测并解析其IP地址。端口扫描对解析出的IP列表使用naabu或masscan进行快速TOP端口扫描。Web截图与指纹识别对扫描出的Web服务使用gowitness进行截图用wappalyzer的CLI版本或TideFinger进行指纹识别。目录/接口爆破对筛选出的Web站点使用ffuf或gobuster配合精心构造的字典进行目录和文件爆破。JS分析运行katana或gospider爬取站点并提取JS文件中的接口。输出报告将所有结果汇总、去重生成一份结构化的资产报告。