首页 技术 正文

记一次Bitwarden 忘记主密码救回密码库实录

技术 3周前 (02-07) 24

前几天看到论坛里大佬的 Cloudflare 自建 Bitwarden 帖子,有点动心就想着把密码库导出来玩,结果发现记得的主密码不对……试了半天也不对,密码提示写得很宽泛没一点用,真是服了我自己。那这号不要了,把密码导出来也行,结果,哈哈,我当初是为什么要主密码来着:)折腾了半天终于还是成功救回了密码库,省得一条条自己导出了!

另外我是直接使用的官方免费服务,所以不存在设置紧急联络人重置主密码的可能,那是付费用户才有的功能……自建的朋友当我没说。

准备工作

  1. 必须有 1 个在线的设备,浏览器插件、手机端、电脑客户端都行,能正常点开密码库查看内容的。

  2. 必须曾经在该浏览器的插件上登录过。登录过才会有 使用设备登录 选项,首次登录是逃不过主密码验证的……

image

救回步骤

1.登录浏览器插件

必须登录,因为这个方法是靠浏览器控制台注入 JS 来跳过密码库导出时的主密码验证,也许手机端、客户端也能通过抓包实现?但我不会(

以前登录过但账号退了还是可以靠前面提到的 使用设备登录 再登回来。

2.将插件最大化并打开 F12 开发者工具

image

点右上角这个 弹出到新窗口 按钮再最大化,按 F12 之后选 Sources 选项卡,在左侧 Page 栏找到这个 webpack:///libs/auth/src/angular/user-verification/user-verification-dialog.component.ts 脚本。如下图所示,跟文件夹一样,一层一层往下翻就是了。一定是这个 user-verification-dialog.component.ts 脚本,底下还有个长得像的别选错。

image

光标随便点脚本任意一行,按 Ctrl F 搜 const verificationResult = await this.userVerificationService.verifyUser(this.secret.value); 这行代码。如图,在这行代码的行号数字上点一下,就能设置一个 breakpoint ,在 Edge 浏览器是图上的小红点,Chrome 是行号整块变蓝。

image

3.返回插件页面输入任意数字作为主密码

在插件页面选密码库导出,随便输入点什么都行,点继续,我这里就以 1 作为演示了。

image

因为前面设置了 breakpoint,点完继续就跳出开发者工具了,点进 Console 选项卡输入 this.userVerificationService.verifyUser = async function(val) { return true; } 并回车。如下图所示,控制台应输出 async ƒ (val) { return true; } 。

image

再回到 Sources 选项卡,直接按下 F8,或者点击右上方那个播放 ️ 按钮。

image

见证奇迹的时刻!浏览器弹出下载框!

image

结语

这个方法我是从一个6年前发的 reddit 帖子学来的,具体操作变了但原理没有。至今还能用说明这不是一个 bug 而是一个 feature( 好吧我觉得实际是因为当你登录状态有效,能打开查看任意密码,官方就确认了你对密码库的所有权,密码存在本地了,导出密码库那个主密码验证就是个本地小保安,用开发者工具轻松绕过。

只要 Bitwarden 坚持在客户端解密,理论上这种本地注入的方法会一直有效。

Bitwarden 显然是坚持每个客户端都本地存一份密码库的,未来推翻这个架构的可能性很小,所以这个方法作为忘了主密码最后的拯救手段还是很可靠的!

最后,还是得说,不要忘了主密码!!!!准备好各种提示自己主密码的手段!


分享 举报
一个Cloudflare DNS & SaaS 管理面板
« 上一篇 3周前 (02-07)
VPS 开荒部署终极指南|新 VPS 必做 5 步骤(测试、DD、加固、优化)2026版
下一篇 » 3周前 (02-08)

文章评论

×
07
2026 02

记一次Bitwarden 忘记主密码救回密码库实录

前几天看到论坛里大佬的 Cloudflare 自建 Bitwarden 帖子,有点动心就想着把密码库导出来玩,...

点击复制推广网址:

下载海报: