黑客入侵匿名社交 “秘密”真成了“无秘”了

刚刚在微博上以为叫 ringzero的安全从业者给了一张截图,看起来像是无密的后台(真假未知),并发表了内容——#秘密# 细节咱们7月乌云见!!!

其实远远在这个之前,我就已经从个人消息途径里打听到了秘密被拖库的事, 如果库都被拖了,那么后台泄露自然是很容易的事了。 由于后台截图不全,并不能知道发布人的真实信息是否能看见, 也不清楚通过后台是否可以获得webshell乃至服务器权限。 就我个人的推测,这次爆料的动机可能有以下几种:

  1. 某黑客早已拖库得手了,玩服务器也玩腻了, 于是就公开让行业内震精一下。
  2. 得到后台权限,但是找不到可以拿shell的点,又懒得去搞apt,于是就公开,这个可能性比较小。
  3. 某大牛获得了多个漏洞,先小范围公开爆料一个危害等级低的, 或者是告诉了某些黑客朋友,这些朋友中间有人抖了出来。
  4. 最近匿名社交打得很厉害,于是黑客成为了竞争中的兵器,在已拖库的前提下,爆料漏洞,可以起到公关上震慑的效果,如果是这个可能性的话,黑客可能掌握了非常多的商业机密和用户隐私,很可能有很多后续问题。无秘不认真处理的话,还会有更多问题爆料出来。

无密的这个漏洞给人感觉的价值还是不小的,至少那些xx门的主角都想知道是谁黑了自己。前一段时间传言说投资人争相投资无秘就是为了看那些匿名爆料者的真实身份。

黑掉一个匿名社交网站有多难? 用一句废话来说就是只要是人设计的产品都有漏洞。 移动客户端只是用来和接口进行交互的, 最终还是需要一个server来进行交互, 不过如果只是生成接口的server, 除非有像上次携程那样的疏忽(其实可能性不小),否则的话可简单利用的场景还是不多的, 但是如果有一个web版的后台可就不一样了。

比方说,如果存在一个持久型xss,黑客提交一个xss脚本到消息里面,再让管理员以某种方式浏览这条消息,这时候就容易得到管理员的隐私,从而可以用来欺骗后台直接得到管理权限, 这时候还有一条命,如果后台存在可获得webshell的漏洞,那就全玩完了。

匿名社交网站低廉的开发成本决定了安全性不会太高, 上述这个方法只是众多入侵手段的一种,即便不能入侵服务器,也有很多方法获得用户隐私,当这个隐私性价比很高的时候, 比如在媒体或者投资机构周围进行数据嗅探,甚至中间人攻击,一样会有黑客去这么做。 匿名社交在目前看来是有隐私安全风险的,如果你的真实身份对比你爆料的内容来说很敏感的话,使用时一定要谨慎。

昨天无秘的运营找到我,说我报道不实,要求我删帖。本来我写那篇文章也不是公关稿,如果真的冤枉了无秘的话,被要求删帖也是可以理解的事,不过对方给的论据主要是下面这条微博:

 

“针对近期用户的疑虑,在这里统一回复。无秘数据库里没有保存手机号,注册时的手机号是为了匹配朋友关系,会经过不可逆加密,同时密钥存放在客户端,即便内部人员也无法知道具体秘密的发布者,请放心使用。”

 

看到这个消息,我真心不知道说什么好, 密钥存放进客户端? 你确定不是猴子派来的逗比么? 好吧,就算密钥是真的放进客户端,我想知道为什么换一台手机输入手机号和密码依然可以登录进去? 难道客户端的意思不是用户手机里下载的app? 将密钥存放进客户端且不说安全问题, 客户端卸载或手机清除后你又如何进行验证呢?

 

好吧,这是幻觉, 口误, 笔误, 表达错误…… 先放过那个存进客户端的雷点好了。下面说一下手机号如果单向不可逆加密后是否可以破解。

 

什么叫做单向不可逆呢? 这里需要一点数学知识, 比如说 f(x) = y, x是明文密码, y是密钥, 但是没有一个g(y) = x 这样的可逆函数可以通过y来快速得到x, 这种情况下就是单向不可逆,常见的哈希比如说md5, sha1 都是如此的, 对于这些的破解需要建立巨大的表格——彩虹表,如果这个表格理论性过大的时候通常会找一个字典去缩小范围,另外由于单纯的md5这样的算法已经有了非常成熟的表,通常在加密的过程中会使用盐或者是二次加密,甚至使用非固定盐增加破解的难度,在这个情况下,我们的长密码一般是不太可能用彩虹表去破解的。

 

但是幸运的是,手机号的加密比这个容易了多,因为 f(x) = y 这个表格因x的区间足够小,建立一个y映射x的表格其实是可行的。 手机号一般是13 , 15, 18 开头, 后面跟9位, 也就是30亿种可能性, 只要把这30亿种可能的手机号对应的密钥都算出来(计算方式黑客能看到库基本上也能看到相关代码,猪猪侠通过看开发文档也发现了), 就可以建立一个30亿条数据的彩虹表, 那么对应一个密钥,我们就可以在有限时间内跑出手机号, 这个表有多大呢? 一个机械硬盘就可以装得下, 也就是说在物理条件完全可以承受的情况下手机号无论用多复杂的方式加密,都可以完美破解的。

 

在当下无法更改验证方式的情况下, 想要避免这个问题是不可能的。 如果更改验证方式,那就难以完成手机通讯录的匹配了。 如果使用 手机 + xx 信息组合起来生成单一的一组密钥呢? 这个虽然可以增大x区间,防止彩虹表, 但是手机通讯录就无法匹配了。(具体为啥自己去想吧,解释起来不容易) 总体来说就是,一个匿名社区使用手机号作为登陆, 无论你如何加密,都是无法从根源上防范用户隐私被暴露的。

人生如戏 厉哥 出品

【微信号】mintshow

人生如戏,全靠演技。

游戏人生,行走江湖。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注