如果给你源码,和网站数据库,你是否能破解出来密码?
都是数字弱密码。
http://www.etherdream.com/webscrypt/example/login/
破解之后有红包拿,来试试吧
源码在这里: https://github.com/EtherDream/WebScrypt/tree/master/example/login
![]() | 1 cnwtex OP |
2 helloccav 2017-02-12 18:16:55 +08:00 人肉穷举出了最简单的那个,然而很久没用支付宝,不知道口令红包怎么用,留给下位朋友吧,谢谢楼主了. |
![]() | 3 ipconfiger 2017-02-12 18:19:30 +08:00 给你 sha256 的源码, 除了穷举, 还有别的办法? 如果数字弱密码, 不要源码也能穷举, 拿源码出来干嘛? 毫无意义 |
4 em70 2017-02-12 18:22:00 +08:00 都知道算法了,用字典计算后去撞库就行了,体力活,谁有空谁弄去 |
5 ic3z 2017-02-12 18:47:13 +08:00 via Android 向大佬学习 |
![]() | 6 cnwtex OP |
![]() | 7 loading 2017-02-12 20:12:23 +08:00 via Android 前端运算,目测是先对密码算一下 hash 这样然后再发送到后端? 前端都暴露出来了,毫无意义。 |
![]() | 8 blackanger 2017-02-12 20:56:35 +08:00 重点在于前端那个 dkHex |
![]() | 9 blackanger 2017-02-12 21:14:17 +08:00 大思路虽然是穷举,但是重点是前端的加密,就像 @cnwtex 说的,前端提高运算量,防穷举,这个需要仔细研究下源码里的算法了: var dkHex: String = bytesToHex(CModule.ram, mDkPtr, mDkLen); bytesToHex 函数及其三个参数的意义,模拟一个算法,得到 dkHex ,后面的就简单了,加盐比对 sha256 加密密码,穷举。 |
![]() | 10 blackanger 2017-02-12 21:15:56 +08:00 前端生成一个 dk 的时间,大概是 1 秒: time: 1089 main.js:21 dk: e3ed2afeb0be3bc5f4ddee429a367f99417ac99a40039de1e5bf39ab498627c4 |
![]() | 11 shiny 2017-02-12 21:42:40 +08:00 写了一个简单的 node 穷举程序,还是非常费运算量的。如果 CPU 核心多点并发跑,跑这个题目还是容易的;但如果密码再复杂点就费劲了。 |
12 l1093178 2017-02-12 22:49:05 +08:00 有点意思,不过最大的意义其实就是把服务器端跑 Scrypt 的消耗丢给了客户端。 |
![]() | 13 cnwtex OP @shiny 这个很适合用在网站上,但是貌似手机支持不太友好,可以测试。 @blackanger 以消耗合适的 cpu 运算来认证前端工作,还能起到验证码的作用。 @l1093178 正解,如果网站用上,除了防穷举,还能防机器登录(消耗运算增加机器人工作)。 @loading 意义需要自己理解。 |
![]() | 14 ihuotui 2017-02-13 00:43:31 +08:00 via iPhone 我需要你的密码明文吗?我只需要你传送什么给后台就可以了。 |
![]() | 15 zzNucker 2017-02-13 00:46:00 +08:00 发现钓出来好几个脑子都不动就在吹逼的,哈哈哈哈 |
![]() | 16 ryd994 2017-02-13 02:24:51 +08:00 via Android 这个想法其实不错的。利用 proff of work 来验证客户端的“诚意” 只是老有半桶水程序员想拿这个代替 HTTPS 这是用来做验证码的,不是用来做加密的 |
17 arron 2017-02-13 11:08:39 +08:00 程序已经上了 asm ,算法速度也不好优化了, 6 位数单核跑得几天时间。 |
![]() | 18 shiny 2017-02-13 18:30:10 +08:00 ![]() 一个简单的 node 穷举程序: https://github.com/shiny/WebScrypt-Crack-Example 4 位没多久就跑出来了。跑 6 位就太不环保了。 |
![]() | 20 zjcqoo 2017-02-14 11:08:15 +08:00 ![]() 这个代码是我写的,哈哈:) 看到 @shiny 破解代码里的链接发现这个帖。。。 其实拖库后暴力破密码原理都是一样的。不过这个项目的意义就是把 PBKDF 的计算放到浏览器里,节省服务器成本而已。 另外对于在线撞库,每猜一次密码浏览器都得计算 PBKDF ,很耗资源,所以可以通过 CPU 资源限制攻击频率。 |
22 mingyun 2017-02-19 14:12:17 +08:00 会玩 |