微软edge内存密码事件延伸:获取你密码的方式远比你想象的简单

就在前天(5月6日),微软 Edge 浏览器 被安全研究员 L1v1ng0ffTh3L4N 测试发现:启动后,浏览器会把已保存的密码全部加载到内存中

需要特别说明的是,安全员吐槽的重点并不是“内存中保存明文密码”这件事本身,而是 无论你是否使用这些密码,Edge 都会把它们一次性全部加载到内存中

感兴趣的同学可以使用以下工具自行验证(github#com/L1v1ng0ffTh3L4N/EdgeSavedPasswordsDumper)

打开 Edge,然后运行 EdgeSavedPasswordsDumper.exe(无需管理员权限)

立刻就能看到保存在 Edge 中的所有明文密码

而实际上,进入网站,你只需要按 F12 打开开发者工具,找到密码输入框,将其类型从 password 改为 text,页面就会直接显示出明文密码。

2、DUMP内存获取密码

对于一般程序而言,内存安全性往往不会做特殊处理。在这种情况下,通过 Dump 内存就可以在极短时间内获取密码

以语雀应用为例,它有一个“本地密码”功能,开启后其他人无法查看内容。

但你不需要任何额外工具,不管是否重启过电脑,两步就能获得密码

1、打开语雀,从任务管理器中dump出其内存

dum出内存(上下三个gif要连着一起看)

2、用记事本打开转存文件,搜索Ctrl + Alt + Space,其后面不远处就是密码明文

搜索密码临近位置特征信息(上下三个gif要连着一起看)

把密码拿去验证下,顺利解开

验证密码(上下三个gif要连着一起看)

你可能会问:这是不是运气好,恰好碰到语雀在开启时直接把密码丢进内存?

其实,应用程序总归要验证密码对不对——这就只是一个“捕捉时机”的问题。

再进一步想:如果输入一个错误的密码,能不能诱使程序把正确的密码加载到内存中(因为程序需要拿正确密码来做比对)?

那如果程序在内存中比对的是加密内容(比如密码的哈希值)呢?思路都是相通的

3、善于观察,利用BUG

程序开发完成后,测试重点通常放在核心功能上,次要功能因为时间、精力有限,往往测试得不够仔细。而这些地方,就可能存在可以利用的漏洞

举个例子,火狐浏览器的开发组织Mozilla,旗下的邮箱应用Thunderbird,当你被要求输入密码才能查看邮箱时,只需连续按两次“取消”或关闭按钮,就能直接进入邮箱

测试版本 148.0.1(当前最新版)

当然,你可能很难再找到其他存在同样问题的程序,但思路是通用的

比如对于类似带有本地密码保护的程序,可能的突破口还有:传入参数绕过启动界面、使用 CE 定位密码比对函数并直接修改返回值等

写在最后

微软对开题问题的回应是“Edge 在启动时以明文将全部密码加载到内存是设计使然,并非用户怀疑的 Bug 导致,其目的是加快终端用户的登录和认证流程”

但不管微软怎么说,这个问题迟早得改

因为利用门槛越低,模仿的门槛就越低——下一步,就是各种木马蜂拥而至。到那时,微软不想改也得改。就像当年的 Steam,不也是被欺诈问题逼到最后,才上了七天交易保护吗?

原文链接:https://www.he6.net/11895.html,转载请注明出处。
0
没有账号?注册  忘记密码?

社交账号快速登录