[来试试] 如果给你源码和数据,你是否能破解出密码?

2017-02-12 17:48:38 +08:00
 cnwtex

如果给你源码,和网站数据库,你是否能破解出来密码?

都是数字弱密码。

http://www.etherdream.com/webscrypt/example/login/

破解之后有红包拿,来试试吧

源码在这里: https://github.com/EtherDream/WebScrypt/tree/master/example/login

4232 次点击
所在节点    程序员
22 条回复
cnwtex
2017-02-12 17:50:13 +08:00
作者是前端安全专家 @EtherDream
http://weibo.com/etherdream
helloccav
2017-02-12 18:16:55 +08:00
人肉穷举出了最简单的那个,然而很久没用支付宝,不知道口令红包怎么用,留给下位朋友吧,谢谢楼主了.
ipconfiger
2017-02-12 18:19:30 +08:00
给你 sha256 的源码, 除了穷举, 还有别的办法?
如果数字弱密码, 不要源码也能穷举, 拿源码出来干嘛?
毫无意义
em70
2017-02-12 18:22:00 +08:00
都知道算法了,用字典计算后去撞库就行了,体力活,谁有空谁弄去
ic3z
2017-02-12 18:47:13 +08:00
向大佬学习😊
cnwtex
2017-02-12 19:24:21 +08:00
@ipconfiger 这个的意义在于前端防穷举。
@em70 前端提高运算量,防穷举,工程意义大过学术意义,没看懂就瞎嘚瑟
loading
2017-02-12 20:12:23 +08:00
前端运算,目测是先对密码算一下 hash 这样然后再发送到后端?

前端都暴露出来了,毫无意义。
blackanger
2017-02-12 20:56:35 +08:00
重点在于前端那个 dkHex
blackanger
2017-02-12 21:14:17 +08:00
大思路虽然是穷举,但是重点是前端的加密,就像 @cnwtex 说的,前端提高运算量,防穷举,这个需要仔细研究下源码里的算法了:

var dkHex: String = bytesToHex(CModule.ram, mDkPtr, mDkLen);

bytesToHex 函数及其三个参数的意义,模拟一个算法,得到 dkHex ,后面的就简单了,加盐比对 sha256 加密密码,穷举。
blackanger
2017-02-12 21:15:56 +08:00
前端生成一个 dk 的时间,大概是 1 秒:

time: 1089
main.js:21 dk: e3ed2afeb0be3bc5f4ddee429a367f99417ac99a40039de1e5bf39ab498627c4
shiny
2017-02-12 21:42:40 +08:00
写了一个简单的 node 穷举程序,还是非常费运算量的。如果 CPU 核心多点并发跑,跑这个题目还是容易的;但如果密码再复杂点就费劲了。
l1093178
2017-02-12 22:49:05 +08:00
有点意思,不过最大的意义其实就是把服务器端跑 Scrypt 的消耗丢给了客户端。
cnwtex
2017-02-12 23:20:05 +08:00
@shiny 这个很适合用在网站上,但是貌似手机支持不太友好,可以测试。
@blackanger 以消耗合适的 cpu 运算来认证前端工作,还能起到验证码的作用。
@l1093178 正解,如果网站用上,除了防穷举,还能防机器登录(消耗运算增加机器人工作)。

@loading 意义需要自己理解。
ihuotui
2017-02-13 00:43:31 +08:00
我需要你的密码明文吗?我只需要你传送什么给后台就可以了。
zzNucker
2017-02-13 00:46:00 +08:00
发现钓出来好几个脑子都不动就在吹逼的,哈哈哈哈
ryd994
2017-02-13 02:24:51 +08:00
这个想法其实不错的。利用 proff of work 来验证客户端的“诚意”
只是老有半桶水程序员想拿这个代替 HTTPS
这是用来做验证码的,不是用来做加密的
arron
2017-02-13 11:08:39 +08:00
程序已经上了 asm ,算法速度也不好优化了, 6 位数单核跑得几天时间。
shiny
2017-02-13 18:30:10 +08:00
一个简单的 node 穷举程序: https://github.com/shiny/WebScrypt-Crack-Example
4 位没多久就跑出来了。跑 6 位就太不环保了。
cnwtex
2017-02-13 20:10:34 +08:00
@shiny 赞~然而没什么用哈哈哈哈
zjcqoo
2017-02-14 11:08:15 +08:00
这个代码是我写的,哈哈:) 看到 @shiny 破解代码里的链接发现这个帖。。。

其实拖库后暴力破密码原理都是一样的。不过这个项目的意义就是把 PBKDF 的计算放到浏览器里,节省服务器成本而已。

另外对于在线撞库,每猜一次密码浏览器都得计算 PBKDF ,很耗资源,所以可以通过 CPU 资源限制攻击频率。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/339941

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX