环境
靶场安装机器:Windows10(192.168.1.110)
渗透机器:Windows10(192.168.1.107)
Burp Suite Professional抓包工具
第一关:基于表单的暴力破解
抓包
在渗透机器上登录 Pikachu 靶场,开启 Burp Suite 抓包工具。在靶场登录页面输入随意的账号(如 admin)和密码(如 123456),提交后在 Burp Suite 中查看抓到的数据包。数据包中包含了 POST 请求的详细信息,如请求的 URL、主机地址、用户代理、接受的内容类型、编码方式、Cookie 等,以及提交的表单数据(用户名和密码)。
设置爆破条件
由于只需破解用户名和密码两个变量,利用 Burp Suite 的 Intruder 模块进行暴力破解。将攻击类型设置为 Cluster bomb,选中用户名和密码的值进行高亮标记,分别为两个变量设置 Payload(导入用户名和密码字典)。
开始爆破
点击开始爆破按钮,Intruder 模块会根据设置的字典对用户名和密码进行组合尝试。
查看攻击成果
通常,验证正确和错误的响应长度不同。通过对响应结果按 Length 排序,可以找到长度与其他不同的数据包,其对应的用户名和密码极有可能是正确的。在本关中,找到三组不同长度的数据包,其用户名和密码均能成功登录靶场,第一关通关。
第二关:验证码绕过(on server)
思路分析
对比第一关,此关多了验证码。先随机输入账号(如 admin)、密码(如 111111)和验证码(如 111111),观察结果。发现验证码错误和账号或密码错误时的提示不同,验证码正确时提示 “账号或密码错误”,错误时提示 “验证码输入错误”。由此想到,若能保持验证码正确,或许可像第一关那样进行暴力破解。但每次输入错误,验证码会刷新,所以需先让验证码保持正确状态。
抓包
输入一次正确的验证码、账号和密码,打开 Burp Suite 抓包,将抓到的数据右键发送到 Repeater 模块。
使用 Repeater 模块进行拦截与测试
在 Repeater 模块中发送数据包,查看服务器返回的数据包及页面渲染结果,确认验证码正确(提示用户名或密码错误)。然后修改密码,再次发送数据包,发现验证码仍有效,说明服务器对验证码的验证存在漏洞,可绕过,该验证码可一直使用。
开始爆破
将数据包发送到 Intruder 模块,按照第一关的步骤设置爆破参数(注意攻击类型和 Payload 设置),开始爆破,获取账号密码后,第二关通关。
第三关:验证码绕过(on client)
抓包爆破与疑问产生
此关界面与第二关相似,验证码样式不同。按照第二关操作,分别输入错误和正确的验证码(账号为 admin,密码为 111111),抓包并尝试爆破。成功获得账号密码,但由此产生疑问:既然爆破步骤与第二关相同,第三关的设立意义何在?
分析疑问
经过测试发现,当验证码错误时,无法抓到数据包,而第二关无论验证码正确与否都会发送数据包到服务器验证。由此可知,第三关的验证码在客户端验证,只有正确时才向服务器发送数据包,与第二关的服务器端验证机制不同,明白了差异后,第三关通关。
第四关:token 防爆破?
测试分析
此关界面与第一关相似,但多了一个 token 参数。抓包发现每次登录时 token 都不同,进一步分析两次抓包的数据包,发现第二次抓包的 token 是第一次从服务器返回的,由此推断服务器每次会发送新 token 给浏览器,用于下次登录验证,不一致则被拒绝。
抓包并设置爆破参数
抓包后将包发送至 Intruder 模块,选择攻击类型为 Pitchfork,设置 2 个不同的 Payload(注意添加顺序和用户名密码的组合)。设置 Payload1 时,由于包含用户名密码及多余字符,需切成三块分别设置,同时注意删除特殊字符,避免过滤。在 Options 中设置 Grep - Extract 来提取 token,设置 Redirections 为 Always,并复制 token 初始值。设置 Payload2 为 Recursive grep,选择之前提取的 token 项,填入初始值并勾选相关选项。最后将 Resource Pool 设置为单线程,调整延迟时间为 100ms。
爆破
点击 Start attack 开始爆破,获取账号密码后,第四关通关。
总结
Burp Suite 的 Intruder 模块提供了多种爆破模式,各有特点:
Sniper 模式:使用一个 Payload,一个参数不变,另一个遍历字典。
Battering ram 模式:同样使用一个 Payload,两个参数同步遍历一个字典。
Pitchfork 模式:根据参数数量确定 Payload 数量,两个参数同步遍历两个不同字典。
Cluster bomb 模式:也是根据参数数量确定 Payload 数量,实现两个字典的笛卡尔积组合爆破。
通过对 Pikachu 靶场的暴力破解练习,我们深入了解了不同安全机制下的漏洞利用与防范方法,提升了网络安全渗透测试技能。