使用burp工具的intruder模块进行密码爆破
一、密码字典
对于密码爆破,拥有一个好的字典是成功的一半。字典的质量远比数量重要。
1. 自定义“手搓”字典(最高优先级)
在测试具体目标前,强烈建议先根据目标信息生成一个自定义字典。这通常比下载的通用字典更有效。
构建思路:
-
公司/产品名:公司名称、产品名、品牌名的各种组合(全拼、简拼、大小写)。
-
例如:目标为
xx公司
,尝试xx@2024
,xx123
,xxadmin
,XX666
。
-
-
季节/年份:
2024
,2023
,2025
,!@#2024
,Season2024!
。 -
默认密码:
admin
,password
,123456
,root
,default
,pass
。 -
弱口令:见下面的“精选核心弱口令列表”。
工具推荐: CUPP
可以根据已知信息(如姓名、生日、宠物名等)生成个性化字典。
2. 精选核心弱口令列表(必试清单)
这是一个你应该始终优先使用的“小而精”的列表。可以直接复制到 Burp Suite 的 Payload Options
中手动添加。
# 超弱密码 admin 123456 password 12345678 123456789 admin123 12345 1234 1234567890 000000 root abc123 password1 123123 qwerty 1q2w3e4r 1qaz2wsx# 带简单符号的弱密码 admin@123 admin#123 123456! password123 Admin123 Admin@123# 默认凭证 admin:admin root:root guest:guest user:user test:test# 空密码或简单重复 (留空) adminadmin passwordpassword
3. 知名的开源字典项目(推荐下载)
这些是安全社区公认的、高质量的开源字典项目,你可以下载它们的发布版本。
SecLists(首选,最全面)
-
描述:这是最著名、最全面的安全测试字典集合,不仅仅是密码,还包含用户名、路径、子域名等。这应该是你的首选下载目标。
-
内容:包含
rockyou.txt
的精简版、根据现实数据泄露整理的密码列表等。 -
下载地址: https://github.com/danielmiessler/SecLists
-
爆破常用路径:
-
SecLists/Passwords/Common-Credentials/
(包含最常用的TOP密码) -
SecLists/Passwords/Leaked-Databases/
(包含从泄露事件中整理的密码,如rockyou.txt
)
-
rockyou.txt(经典巨无霸)
-
描述:源于2009年RockYou公司数据泄露的1400万个纯文本密码。这是密码研究和大规模爆破的事实标准。
-
注意:文件很大(约130MB),包含1.4亿条密码。建议使用其精简版或从SecLists中获取。
-
获取方式:在 Kali Linux 中,路径为
/usr/share/wordlists/rockyou.txt.gz
,需要解压。你也可以在网上搜索下载。
kaonashi.py (RootedCON 2020)
-
描述:一个专门从公开的数据泄露事件中整理、清洗和优化的密码字典,质量很高。
-
下载地址: https://github.com/kaonashi-passwords/Kaonashi
二、分析结果
如何识别成功密码?
在 Intruder 的爆破结果中,您需要通过对比响应特征来找出那个“与众不同”的请求。主要关注以下几列:
-
首要关注状态码
302
:在登录爆破中,302
是成功的强信号。 -
对比响应长度:在一堆状态码相同的请求中,长度不同的那个往往是成功的。成功和失败后返回的页面几乎总是不同,因此长度也不同。
-
亲自验证:双击可疑行,查看响应详情。对于
302
,看响应头里的Location
字段;对于200
,看响应体里是登录成功后的页面还是失败提示。
三、实例分析
HTTP响应(Response)
HTTP/1.1 302 FoundServer: nginx/1.15.10Date: Fri, 03 Oct 2025 11:42:29 GMTContent-Type: text/html; charset=UTF-8Connection: keep-aliveExpires: Thu, 19 Nov 1981 08:52:00 GMTCache-Control: no-store, no-cache, must-revalidatePragma: no-cacheLocation: index.phpContent-Length: 367<html><head><title>System Tools</title><link rel="stylesheet" href="css/styles.css"></head><body><div class="container"><div class="inner">You are currently logged in<p><div class="menu-system"><h3>System Tools</h3><a href='command.php'>Command</a><p></div><p><a href='logout.php'>Click to Logout</a> </div></div></body></html>
响应解读(逐行分析)
-
HTTP/1.1 302 Found
-
这是最重要的信号。
302
状态码意味着服务器要求客户端(您的浏览器/Burp)重定向到另一个页面。在登录场景中,这几乎总是登录成功的标志。
-
-
Location: index.php
-
这是
302
重定向的目标。它告诉浏览器:“登录成功,现在跳转到index.php
页面”。 -
值得注意的是,这里跳转回的
index.php
很可能不再是登录页面,而是登录后的主页或仪表板。
-
-
响应体内容
-
尽管浏览器在收到
302
后会自动跳转,但服务器仍然返回了一段HTML内容。这段内容就是您看到的: -
You are currently logged in
:这行文字是最直接、最确凿的证据,明确声明您已处于登录状态。 -
系统菜单:
<div class="menu-system"><h3>System Tools</h3><a href='command.php'>Command</a>...
这表明您获得了访问系统工具的权限,看到了普通未登录用户看不到的菜单项。其中command.php
链接尤其值得关注,可能是一个命令执行功能,是渗透测试中的重要目标。
-
-
其他头部信息
-
Cache-Control: no-store, no-cache, must-revalidate
和Pragma: no-cache
:这些指令是为了防止浏览器缓存此敏感页面,这是Web应用程序的常见安全实践。
-
总结与下一步行动
-
结论:使用用户名
admin
和密码happy
的组合可以成功登录该系统。 -
验证:您可以在浏览器中直接访问
http://192.168.226.138
,使用admin
/happy
进行登录,应该能看到上述响应中的系统工具菜单。 -
下一步:既然已经成功进入系统,您接下来的渗透测试可以围绕已发现的授权功能展开,例如:
-
测试
command.php
页面,看是否存在命令注入漏洞。 -
查看其他已解锁的功能菜单。
-
尝试寻找权限提升或访问控制缺陷。
-