用 Pitchfork 做一次撞库:两次实验教会我的事
靶场本地虚拟机 Metasploitable2 Kali仅主机网络全程在自有环境内操作。一、先纠正一个误解撞库不是随机组合密码我刚开始学的时候以为撞库就是把账号和密码随机排列组合去试。做过一遍之后才发现完全不是这样。三种打法的区别其实全在数据从哪来打法数据来源赌什么请求数撞库泄露库里现成的「账号:密码」配对人会在不同网站复用密码min(两表行数)水喷洒就 1 个弱口令总有人用弱口令账号数穷举字典 × 账号全排列运气最不划算N × M撞库用的数据本身就是成对的——某次数据库泄露时原样拖出来的真实凭证alicecompany.com:Pssw0rdbobcompany.com:123456carolcompany.com:iloveyou所以撞库不是猜是把别人已经泄露的凭证成对搬到另一个网站去试。100 个账号 × 1000 个密码的全组合是 5 万次请求限速下要十几个小时还大概率一无所获而 100 个成对凭证只需要 100 次。二、Burp 里的四种攻击模式别选错Burp Intruder 的 Attack type 下拉框里有四个模式行为差别很大模式行为适合场景Sniper一个字典逐个替换某个位置其他位置不动单个账号 × 多个密码Battering ram一个字典同一个值塞进所有位置用户名密码相同admin/adminPitchfork多个字典第 i 行配第 i 行撞库成对凭证Cluster bomb多个字典笛卡尔积全排列N × M最贵我前一篇写的是 Sniper7 个弱口令打一个 admin这篇试 Pitchfork。三、这次的实验造一份泄露库DVWA 里有 5 个真实账号admin / gordonb / 1337 / pablo / smithy。我在 Kali 里手造一份泄露库然后拆成两列printf ‘admin:password\ngordonb:abc123\n1337:charley\npablo:letmein\nsmithy:password\n’ creds.txtcut -d: -f1 creds.txt users.txtcut -d: -f2 creds.txt pass.txtwc -l users.txt pass.txt这里 cut 的作用是切不是替换-d: 指定用冒号当刀把每行切成两段-f1 取左边那段账号、-f2 取右边那段密码原字符一动不动。最后 wc -l 数行数——两列行数相等 天然对齐这是撞库不出错的前提。然后在 Intruder 里抓 Brute Force 请求 → Send to IntruderAttack type 选 Pitchfork标记两处username§admin§password§123456§Payload set 1 → Load /home/kali/users.txt5 个账号Payload position 切到 2 → Load /home/kali/pass.txt5 个密码Payload count 5、Request count 5 → Start attack一个容易踩的坑两个字典要行行对齐。如果我载入 5 个账号 4 个密码Request count 会变成 4第五个账号根本不会被测。另外别手抖点 Deduplicate——密码字典里出现重复是正常的很多账号就是共用同一个弱口令去重了就漏配对了。四、结果表怎么从 5 行里看出中了几行这次 5 行全命中Status code 全 200Length 分别是账号密码Lengthgordonbabc12349851337charley4983adminpassword4986pabloletmein4986smithypassword4987点任意一行搜 welcome都能搜到 Welcome to the password protected area xxx。这里有个我一开始没预料到的细节5 个成功行的长度并不相同是 4983~4987。差别来自那句成功提示里回显了用户名Welcome to the password protected area 1337用户名 4 个字符的1337最短6 个字符的smithy最长。所以判读不能只找唯一异类要找挤在一起的一小撮——如果同时测 20 个账号成功行会彼此接近但不相等差异恰好等于用户名的长度差。这招在真实撞库里能帮我分辨到底哪几个账号沦陷了。五、第二次实验密码全在列表里命中却是 0第一次跑通之后我做了个对照实验把密码列表整体错位123456charleypassword123456charley预期会翻车结果是真的全灭——5 行长度全部 4919~4920零命中。关键在于password、charley 这些正确密码全都还在列表里一个不少。只是它们站错了行被配给了错误的账号。结论撞库命中 正确密码 × 正确账号配对必须同时正确。密码在字典里 ≠ 能登录。同一份数据、同一批密码只改配对方式这一个变量结果就从 5/5 变成 0/5。这就是对照实验的价值——它把到底是密码不对还是姿势不对这件事彻底分开了。六、中途翻车一次 302 让我学到了什么第一次跑这个实验时5 行全返回 302、Length 只有 397 左右。一开始我以为字典错了。查下来发现是会话过期——PHPSESSID 是上午抓的那条老请求里的PHP 默认 24 分钟过期服务器那边早就查无此人于是把这 5 个请求全当游客踢回登录页Location: …/login.php。把新 PHPSESSID 就地替换进 Positions 的请求头重跑全 200。教训Intruder 结果表全灭先查请求姿势会话、Cookie、安全级别再怀疑字典。 我一周内已经因为安全级别被改回 high和会话过期栽了两次同一个坑踩两遍——现在我养成了新习惯开跑前先看 Status code 列全 200 才是攻击有效全 302 说明请求根本没进门这时候分析 Length 是白费力气。七、复盘这一课真正学到什么撞库靠配对正确不靠字典大。错位实验 0 命中比任何理论都有说服力。暴露的凭证和猜的密码是两种完全不同的资产。前者是别人现成给的东西性价比高一个数量级。Request count 是我的安全带开跑前先看它。数字不对就别点 Start attack。结果表要看分布而不是看单行。挤在一起的一小撮往往就是命中组。八、防御侧写报告时的修复建议登录接口限速失败 N 次锁定 指数退避接图形/滑块验证码合并错误提示“用户名或密码错误”避免用户名枚举注意即使合并账号存在与否的响应时间差也可能泄露需要一并处理强制 MFA密码对了也进不去是最有效的一道密码策略长度优先于复杂度维护 top 10000 弱口令黑名单异常检测异地登录、异常设备指纹、撞库特征告警同一 IP 短时间大量账号失败合规提醒多数 SRC 明确不收我用外部泄露库撞进去了这种报告——因为那不是目标网站的错。本站能报的是登录接口无失败次数限制、无验证码、允许弱口令可被撞库批量接管账号并且危害证明要只用自己的测试账号。

相关新闻

Unsloth 微调 构建自己的大模型 没有GPU也能微调

Unsloth 微调 构建自己的大模型 没有GPU也能微调

这次我们使用unsloth框架来微调模型,将模型微调成一个垂直领域的模型先说问题This environment is externally managed ╰─> To install Python packages system-wide, try apt installpython3-xyz, where xyz is the package you are trying toinstall.从 Pyth…

2026/10/8 8:25:07 阅读更多 →
模拟赛车驾驶舱DIY:openrig开源铝型材方案从选材到调校

模拟赛车驾驶舱DIY:openrig开源铝型材方案从选材到调校

模拟赛车圈里,rig 是一个绕不开的词。它指的不是电脑主机,而是那套把方向盘、踏板、座椅和屏幕全部整合成一个固定驾驶环境的支架系统。openrig 就是奔着这件事来的一套方案:全开放的图纸,所有结构件用标准铝型材搭建,…

2026/10/8 8:25:04 阅读更多 →
逆向 BootMetro Pivot 插件:150 行 jQuery 复刻 WP8 风格 Pivot 控件的完整原理

逆向 BootMetro Pivot 插件:150 行 jQuery 复刻 WP8 风格 Pivot 控件的完整原理

逆向 BootMetro Pivot 插件:150 行 jQuery 复刻 WP8 风格 Pivot 控件的完整原理 【免费下载链接】bootmetro Simple and complete web UI framework to create web apps with Windows 8 Metro user interface, based on Bootstrap 2. 项目地址: https://gitcode.c…

2026/10/8 8:24:03 阅读更多 →

最新新闻

Pandas实战指南:从数据清洗到可视化看板全流程解析

Pandas实战指南:从数据清洗到可视化看板全流程解析

最近帮一个做电商代发的朋友整理快递账单,原始数据拿到手那一刻我就知道今天又得加班了——表头占了两行,日期有的是“2024/1/5”、有的是“20240105”,运费列里混着“包邮”和null,同一个订单号在表格里出现了四次。这大概是数据…

2026/10/9 10:52:31 阅读更多 →
JSP+MySQL实战:从零搭建家乡图文视频展示管理平台

JSP+MySQL实战:从零搭建家乡图文视频展示管理平台

简介:这是一套面向Java Web课程设计场景的个人与家乡展示管理平台源码,采用JSP加MySQL技术栈,适合正在完成课程作业或需要练手Java Web全栈开发的学生与初学者。前端涵盖首页照片轮播、个人简介、技能管理、家乡简介、特色介绍与游客留言回复…

2026/10/9 10:52:31 阅读更多 →
从压测指标到线程池调优:TPS、RT与核心参数实战指南

从压测指标到线程池调优:TPS、RT与核心参数实战指南

做后端服务的时间长了,你会发现一个尴尬的现象:线程池参数明明是代码里最容易被复制的几行,却也是最容易被拍脑袋定的配置。好一点的情况是 corePoolSize 填个 8、maxPoolSize 填个 16,然后就再也没动过;遇到突发流量就…

2026/10/9 10:52:31 阅读更多 →
汇汇多语言微盘系统源码二次开发:USDT支付与K线对接实践

汇汇多语言微盘系统源码二次开发:USDT支付与K线对接实践

简介:面向加密货币支付场景下的微盘交易系统技术团队,这份源码包提供汇汇多语言微盘系统的完整二次开发源码,已对接USDT支付,附带运营级完整数据,K线功能运行正常,支持中英俄3种语言切换。包内共2000个文件…

2026/10/9 10:52:30 阅读更多 →
Python函数核心机制:从参数传参到闭包与装饰器实战解析

Python函数核心机制:从参数传参到闭包与装饰器实战解析

1. 函数到底解决了什么问题写了几年 Python,我越来越觉得函数是这门语言里最值得花时间啃透的一块。很多人刚接触编程时,最先学会的是变量、循环、条件判断,觉得代码能跑起来就完事了。但等你开始写超过一百行的脚本,或者需要把一…

2026/10/9 10:52:30 阅读更多 →
EEG情绪检测复现指南:DEAP与SEED-IV数据预处理及SVM参数调优全解析

EEG情绪检测复现指南:DEAP与SEED-IV数据预处理及SVM参数调优全解析

简介:基于DEAP与SEED-IV两个公开脑电数据库的情绪检测研究论文,采用SVM分类器实现情感状态识别,适合毕业设计、情感计算及脑机接口方向的科研初学者参考。论文系统梳理了利用公开数据集进行EEG情绪检测的流程,按“预处理—离散小波…

2026/10/9 10:51:28 阅读更多 →

日新闻

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API实战:LocalDate、Date与ZonedDateTime的转换与避坑指南

Java时间API这个话题,隔三差五就会在群里被翻出来讨论一次。上周还有个同事线上处理一个订单超时问题,排查到最后发现是ZonedDateTime序列化后时区丢了,用户在下单当天晚上看到的时间整整差了8个小时。这类问题几乎每个做Java开发的人都遇到过…

2026/10/9 0:00:49 阅读更多 →
EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

EasyTier实践:从NAT穿透到子网代理的异地组网部署与排错

前几个月我手头有好几台机器需要互相访问:办公室台式机、家里 NAS、还有一台云主机。如果只是偶尔传个文件倒还好,问题是工作场景经常要在几处环境之间来回切换,每次都先登录跳板机再层层代理,实在折腾。我先后试过端口映射、自建…

2026/10/9 0:00:49 阅读更多 →
AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent工程实战:从七要素到七个决策点的系统设计指南

AI Agent 这个词在过去一年里被反复提及,但真正动手搭过一套能跑起来的 Agent 系统的人都知道,从"知道它是什么"到"让它稳定干活"之间隔着一整套工程决策。我前后参与过几个 Agent 项目的落地,从最初用现成框架拼装&…

2026/10/9 0:01:50 阅读更多 →

周新闻

KT148A语音芯片外挂8002D功放的工程实践指南

KT148A语音芯片外挂8002D功放的工程实践指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:32 阅读更多 →
LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

LLC谐振变换器增益公式推导:从FHA等效到完整归一化表达式

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:40 阅读更多 →
ARM架构深度解析:从RISC设计理念到交叉编译实战

ARM架构深度解析:从RISC设计理念到交叉编译实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 10:11:06 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 21:13:17 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/8 15:26:17 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/9 6:17:20 阅读更多 →