摘要
在 Web 渗透测试的 Reconnaissance(信息收集)阶段,发现目标网站上未公开链接的目录和文件是至关重要的一步。这些隐藏的资源往往包含着敏感信息、配置文件甚至管理后台。本文将基于《Web渗透测试》课程中的任务四,在 VMware Workstation 虚拟机的 Kali Linux 环境中,使用 Burp Suite Community Edition 的 Intruder 模块,对 WackoPicko 靶场进行一次完整的敏感目录发现实战。文章将详细记录操作流程,并对 Intruder 的核心功能------攻击载荷(Payloads)与攻击类型(Attack Types)进行深度解析。
一、 实验环境
-
攻击机: Kali Linux (运行于 VMware Workstation 虚拟机中)
-
目标靶场 : WackoPicko (访问地址:
http://192.168.114.12/WackoPicko) -
工具: Burp Suite Community Edition v1.7.32
二、 任务描述
Burp Suite 的 Intruder 模块是一个强大的自动化攻击工具,它可以根据预定义的规则或自定义的攻击载荷列表生成并发送多个 HTTP 请求。虽然 Intruder 主要用于自动化漏洞测试(如模糊测试),但它同样可以被用来模拟 DirBuster 或 ZAP 的强制浏览(Forced Browsing)功能,即通过发送大量包含不同路径的请求,来发现那些未被网站导航链接但实际存在的文件和目录。
本任务的目标是:配置 Burp Suite,使用 Intruder 模块对 http://192.168.114.12/WackoPicko/进行扫描,以发现潜在的敏感目录和文件。
三、 任务实现(实操)
3.1 准备工作
主机ip:192.168.114.11

靶机ip:192.168.114.12

确保互ping通!

在开始之前,确保以下两点:
-
已将浏览器(如 Firefox)配置为使用 Burp Suite 作为代理(通常为
127.0.0.1:8080)。 -
已成功访问目标网站
http://192.168.114.11/WackoPicko,并能看到页面内容。
3.2 选择请求并发送到 Intruder
-
在 Burp Suite 中,切换到 Proxy 标签页,然后进入 HTTP history 子标签页。
-
找到对 WackoPicko 根路径(
/WackoPicko/)的请求包。这个包是我们后续攻击的基础模板。 -
右键点击该请求包,在弹出的菜单中选择 Send to Intruder。
此时,请求已经被复制到了 Intruder 模块中,我们将在那里进行后续的配置。
3.3 设置修改点 (Positions)
-
切换到 Intruder 标签页下的 Positions 选项卡。
-
默认情况下,Intruder 会高亮显示所有可能的修改点(用
$包裹)。为了精确控制,我们需要清空这些默认的标记。 -
点击 Clear 按钮,清除所有高亮字段。
-
现在,我们需要指定一个位置作为攻击变量。在 URL 栏的末尾(
/WackoPicko/)的斜杠后面,添加一个字段,例如a。然后选中这个a,点击 Add 按钮。这样,这个位置就被设置为了一个修改点,Intruder 会在攻击时用我们定义的 Payload 来替换这个a。
3.4 配置攻击载荷 (Payloads)
-
切换到 Payloads 选项卡。
-
由于我们上一步只设置了一个修改点,因此只需配置一个攻击载荷列表。
-
将 Payload type 设置为 Simple list。
-
点击 Load 按钮,从系统中选择一个合适的字典文件。在 Kali Linux 中,常用的字典位于
/usr/share/wordlists/dirb/small.txt。选择这个文件作为我们的攻击载荷列表。加载后,你可以在下方的列表中看到数百个常见的目录和文件名。
3.5 启动攻击
-
配置完成后,点击右上角的 Start attack 按钮。
-
如果使用的是 Burp Suite 的免费版,可能会看到一些警告信息,请选择 Accept 以继续攻击。
-
攻击开始后,Intruder 会逐个将 Payload 列表中的条目替换到我们设置的修改点,并向目标服务器发送请求。这个过程可能需要几秒到几分钟,具体取决于字典大小和网络状况。
3.6 分析结果
攻击完成后,会弹出一个结果窗口。我们需要根据响应的状态码(Status)来分析哪些资源是存在的。
-
200 OK: 表示文件或目录存在且可访问。
-
3xx Redirection: 表示重定向,通常意味着资源存在但被跳转到了其他地方。
-
4xx Client Error: 表示客户端错误,通常是请求的资源不存在(如 404 Not Found)。
-
5xx Server Error: 表示服务器错误,可能是请求触发了服务器的异常。
通过排序和观察,我们可以轻松找出所有返回 200 或 3xx 的条目。例如,你可能会发现一个名为 admin的目录,这很可能是管理功能页面。
四、 拓展:Intruder 模块的深度解析
完成基础任务后,我们来深入探讨 Intruder 模块的两个核心概念:攻击载荷类型与攻击类型。理解它们,能让你在面对不同场景时灵活选择最优策略。
4.1 攻击载荷类型 (Payloads Type)
Intruder 支持多种Payload类型,以适应不同的测试需求:
-
Simple List: 从文件加载内容,或者直接在文本框中输入并添加到列表中。这是最常用的类型,适用于已知或猜测的字典攻击。
-
Runtime File: 在运行时从指定文件中获取有效载荷,适用于大型文件,不会一次性加载到内存中,节省资源。
-
Numbers: 生成一个纯数字列表,可以是有序的或随机的。适用于测试ID、端口号等数字型参数。
-
Username Generator: 从电子邮件列表中提取可能的用户名。适用于社会工程学或用户名枚举。
-
Bruteforcer: 基于指定字符集生成所有可能的排列组合。适用于密码破解或短字符串的暴力枚举。
4.2 攻击类型 (Attack Types)
Intruder 提供了四种攻击模式,决定了如何将 Payload 应用到多个修改点上:
-
Sniper (狙击手): 逐个替换每个修改点,每次替换后的值都是不同的。这是最常用、最直观的模式,适用于单个修改点的测试。
-
Battering Ram (攻城锤): 使用一组攻击载荷,但在每次修改中将所有修改点替换成相同的值。适用于所有修改点都需要相同输入的场景。
-
Pitchfork (草叉): 依次替换不同修改点上的多个攻击载荷,适用于已知数据的测试,如用户名和密码(第一个修改点用用户名列表,第二个用密码列表)。
-
Cluster Bomb (集束炸弹): 测试多个攻击载荷的所有排列组合。适用于需要穷举所有可能性的场景,但请求量会非常大,需谨慎使用。
在本任务中,我们只使用了一个修改点,因此选择 Sniper 模式是最合适的。它会依次将字典中的每个词代入到 URL 末尾,从而实现目录爆破。
五、 总结与反思
通过使用 Burp Suite 的 Intruder 模块,我们有效地自动化地发现了 Web 应用程序中的敏感目录和文件。从基础的抓包、设置标记点、加载字典,到启动攻击和分析结果,每一步都体现了自动化工具在渗透测试中的巨大价值。
更重要的是,通过深入理解 Intruder 的 Payload 类型和 Attack Type,我们不再局限于"照葫芦画瓢"的操作,而是能够根据实际场景灵活调整策略。例如,当面对需要同时测试用户名和密码的登录框时,我们可以切换到 Pitchfork 模式;当需要对一个参数进行纯数字的模糊测试时,Numbers 类型是更好的选择。
这次实验不仅是一次工具的使用练习,更是一次对自动化攻击原理的深入思考。在实际的渗透测试中,信息收集的深度和广度直接决定了后续攻击的成功率。Intruder 作为 Burp Suite 的核心模块之一,其强大和灵活,值得我们投入更多时间去钻研和掌握。