DVWA + Burp Suite 完整爆破实操 / 字典的制作与优化

发布时间:2026/8/12 19:47:02
DVWA + Burp Suite 完整爆破实操 / 字典的制作与优化 第一部分:DVWA Burp Suite 完整爆破实操0. 准备工作(先把环境跑起来)DVWA 是什么:Damn Vulnerable Web Application,一个故意写得很烂的网站,专门给你练手。它把漏洞按难度分级,是学 Web安全的头号靶场。最快搭建方式(推荐 Docker):docker run --rm -it -p 8080:80 vulnerables/web-dvwa然后浏览器访问 http://localhost:8080,默认账号 admin / 密码 password,进去后点 Create/Reset Database 初始化。Burp Suite:Kali 自带,或去官网下 Community(社区免费版,够学习用)。▎ ⚠️ 社区版的 Intruder 有速度限制(节流),爆破会很慢。学习原理够用;想快就上 Pro,或用 Hydra/ffuf 配合。1. 配置浏览器代理(让流量经过 Burp)Burp 的核心是中间人:你的浏览器 → Burp → 目标网站。这样 Burp 能看到并修改每一个请求。Burp 默认监听 127.0.0.1:8080(在 Proxy → Options 里能看到/改端口。注意别和 DVWA 端口撞了,DVWA 用 8080 就把Burp 改成 8081)浏览器设置代理指向 Burp 的地址端口- 强烈建议用 FoxyProxy 插件 一个独立的浏览器/配置,一键开关代理,不影响日常上网装 Burp 的 CA 证书(否则 HTTPS 抓不了)。DVWA 是 HTTP 的话可以先跳过验证:开着代理刷新 DVWA,Burp 的 Proxy → HTTP history 里能看到一条条请求,就通了。2. 把难度调到 Low,进入 Brute Force 模块DVWA 左侧菜单:先点 DVWA Security,把 Security Level 设为 Low再点 Brute Force页面是一个登录框(Username / Password)。随便输一个错的,比如 admin / wrong,点 Login。3. 抓包 —— 看清请求长什么样在 Burp 的 HTTP history 里找到刚才那次登录请求。DVWA Low 级用的是 GET,你会看到类似:GET /vulnerabilities/brute/?usernameadminpasswordwrongLoginLogin HTTP/1.1Host: localhost:8080Cookie: PHPSESSIDxxxx; securitylow…要看懂三样东西:参数:username、password 就是我们要爆破的目标Cookie:securitylow 和 PHPSESSID 必须带上,否则请求无效(登录态)成功/失败标志:先手动用正确密码 password 登一次,对比响应差异 —— 成功时页面会出现类似 Welcome to the passwordprotected area 的文字,失败时是 Username and/or password incorrect.▎ 这一步最重要:你必须先知道成功长什么样,失败长什么样,后面才能在几千个响应里认出那个对的。4. 发送到 Intruder,标记爆破点右键那条请求 → Send to Intruder。切到 Intruder → Positions 标签。Burp 会自动给所有参数加上 §§ 标记。点 Clear § 清空,然后只选中你要爆的值:只爆密码:选中 password 的值 wrong,点 Add § → 变成 password§wrong§攻击类型选 Sniper(单点爆破)如果账号密码都要爆,就两个都标记,类型选 Cluster bomb(下面讲)。5. 加载字典(Payloads)切到 Payloads 标签:Payload set:1(对应第一个 § 位置)Payload type:Simple list下面 Payload Options:手动加几个,或 Load 一个密码字典文件新手练习时,先手动加几个,确保里面混入正确答案 password:123456adminpassword ← 正确答案埋在里面letmeinqwerty准备好后点右上角 Start attack。6. 看结果 —— 找那个不一样的响应攻击窗口会列出每次请求的结果。盯住这几列:技巧:加个 Grep-Match。在攻击窗口的 Settings(或旧版 Options)里,Grep - Match 添加关键词Welcome。这样命中的那行会多出一个打勾的列,一眼就能定位,不用去比长度。找到那行 → 看它的 Payload 值,就是正确密码 password。爆破完成。7. 进阶:Cluster Bomb 同时爆账号密码如果连账号都不知道,把 username 和 password 都标记 §,攻击类型选 Cluster bomb:Payload set 1 用户名字典(admin、root、test…)Payload set 2 密码字典Burp 会做笛卡尔积:每个用户名 × 每个密码全部组合10 个用户名 × 100 个密码 1000 次请求。这也说明为什么字典越大越慢 —— 组合是相乘的。8. 提升难度,理解防御(重点!)把 DVWA 调到 Medium / High 再爆一次,你会撞到真实世界的防御:Medium:每次失败后服务端 sleep(2),人为拖慢 → 爆破时间成倍增加High:引入了 CSRF Token(user_token)。每次请求都带一个一次性随机 token,你上次的 token 用完就失效直接爆破会全部失败,因为 token 不对破解方法:Burp Intruder 用 Pitchfork 模式 **Recursive Grep(递归提取)**payload,先从上一次响应里抓出新token,再填进下一次请求。这一步偏进阶,能做出来说明你真懂了会话机制▎ 这里你就亲身体会到了:CSRF Token 延时 锁定,就是防爆破的三板斧。 攻防是一体两面。第二部分:字典的制作与优化前面说过 —— 爆不出来,九成是字典的问题。 这部分才是真正拉开水平的地方。1. 先建立正确认知字典不是越大越好。100 万行的烂字典,不如 1000 行的精准字典。好字典 命中率高 体积可控。目标是用最少的尝试,覆盖最可能的答案。针对性 通用性。爆一个中国政府网站,和爆一个欧美论坛,该用的字典完全不同。2. 现成字典库:SecLists(必装)这是安全圈公认的字典总仓库,GitHub 搜 SecLists。git clone https://github.com/danielmiessler/SecLists.git目录结构你要熟悉:Passwords/ —— 各种密码字典。rockyou.txt(1400万条真实泄露密码,爆破首选)、Common-Credentials/10k-most-common.txtUsernames/ —— 用户名字典Discovery/Web-Content/ —— 目录爆破字典,如 common.txt、raft-large-directories.txtFuzzing/ —— 参数模糊测试Kali 里 rockyou 的位置:/usr/share/wordlists/rockyou.txt.gz,先 gunzip 解压。▎ 实战套路:先跑通用字典(rockyou、10k-common)快速试一遍,不中再上定制字典。3. 定制字典:社工字典(命中率最高的一类)真实密码往往和人相关。收集目标信息,组合成字典:常见密码构成元素:姓名拼音:zhangsan、zhang、lisi生日:19980101、0101、980101手机号 / 手机尾号公司名 / 域名:tencent、baidu有意义的年份:2023、2024常见后缀:123、!、、#、888组合逻辑(密码常是元素 数字/符号):zhangsan123Zhangsan2024zhang1998!Tencent123工具:Cupp(常见用户密码分析器):交互式问你目标的姓名、生日、宠物名…自动生成社工字典。新手最好用python3 cupp.py -iCrunch:按规则穷举生成。比如生成所有 6 位纯数字(验证码爆破就靠它):crunch 6 6 0123456789 -o num6.txt生成一个大写字母开头 5 位小写这类规则也行,但要注意组合爆炸:8 位全字符组合有几万亿条,根本跑不完CeWL:爬取目标网站页面,把出现的单词提取成字典(公司网站上的产品名、术语常被员工拿来当密码)cewl http://目标网站 -w site_words.txt -m 54. 字典优化:规则变形(Rules)—— 高手的核心技巧用户不会用纯 password,而是Password1、Pssw0rd、password2024。与其手动列举,不如用规则引擎在跑的时候自动变形。这叫 Rule-based attack。Hashcat / John the Ripper 的规则能对每个基础词自动做:首字母大写:password → Password末尾加数字:password → password1、password123Leet 替换:a→、o→0、s→$、i→1 → Pssw0rd首尾加年份:password → password2024hashcat 自带最有名的规则:best64.rule(64 条最有效变形规则),rockyou-30000.rule。hashcat -a 0 hash.txt rockyou.txt -r rules/best64.rule这一招能用小字典覆盖海量变体,是字典优化的精髓 —— 不是把字典撑大,而是用规则动态扩展。5. 字典的清洗与去重(提速关键)字典拼起来后一定要处理,否则浪费大量时间在无效/重复项上:去重 排序:sort -u raw.txt -o clean.txt按长度过滤(比如目标要求密码≥8位,就删掉短的):awk ‘length 8’ clean.txt final.txt多个字典合并去重:cat dict1.txt dict2.txt dict3.txt | sort -u merged.txt按可能性排序:把最常见的放前面(比如 rockyou 本身就是按泄露频率排的),越可能命中的越早试到,能提前结束。6. 不同场景该配什么字典(速查)7. 一句话总结字典心法▎ 通用字典打快、社工字典打准、规则变形打广、清洗去重打省。 四者结合,才是完整的字典策略。学完这两块,你应该能做到:独立搭 DVWA、配好 Burp 代理、抓包、用 Intruder 完成 Low 级爆破,并会用 Length / Grep-Match 判定成功理解 Sniper / Cluster bomb 的区别,知道账号密码同爆怎么配会用 SecLists、Cupp、Crunch、CeWL 制作字典,会用规则变形和清洗去重优化字典反过来能说清爆破的防御手段(锁定、延时、CSRF Token、验证码、MFA)