经过深入研究与证实,此次淫淫站内信风波总结一下

作者: yangzhe1991 分类: 我是搞技术的 发布时间: 2011-04-30 02:29 ė 621条评论

话说我第一次在solidot投稿居然成功了= =而且很快就发出去了……

首先就是这次漏洞的原理。我们知道<>等符号是需要转义的。如果不转义直接显示在HTML中会被浏览器看作普通的HTML代码,也就是说会当作语句执行。人人发站内信是会转义的,但是通过那个js脚本发送的就不会。开始我因此断定淫淫网的程序员是在客户端转义再发送的,我的投稿就这么写的。事实证明似乎没这么弱。不过看代码发现人人在提交站内信的时候会调用megaboxx.submit_prehook这个函数。我不知道这个是淫淫自己写的还是js或者DOM本身提供的,于是Google了一下,发现唯一的结果来自forum.developers.facebook.net……别的话我就不多说了。

总之看上去如果我没分析错,那么那个51.js使用的XN.JSON.build应该并不是普通发站内信会用到的,也就是说发站内信本来是不会使用AJAX的。这个函数的用途主要是在分享的时候给好友发站内信。至于为何这个盗资料代码的作者知道这个漏洞,是内部泄露还是因为抄袭了facebook因而近似开源还是不小心看出来的,我还不清楚。

能运行js意味着能做一切。获取信息、挂木马、DDoS攻击都可以做,只不过这次是偷数据罢了。

隐私是无价的,我觉得我们应该让人人有个说法,甚至可以考虑起诉。反正人家都要在米国IPO了,这事如果在美国发生了他们会很惨吧?而这次行为显然应该已经在任何国家都构成犯罪,无论是不是法制国家,无论法律是不是挡箭牌。其实我挺好奇这些资料能卖多少钱,要知道这可是几千万中国大学生的实名联系方式……

人人本身很多设计都是有巨大问题的,比如http://www.renren.com/listcards,完全就是白送啊……(现在已经关闭)还有删除发送记录用的是GET等等等等……当然隐私设置也是一直有问题的,比如分享会把你跟好友说的话显示在全局被所有分享的人看到,比如即使设置非好友看不了你的新鲜事也能在状态页面看到状态(那个药家鑫师妹还是师姐的,就是把向非好友显示的信息降到最低还是可以很轻松的在她的状态底下回话骂人)。这样的东西太多太多了,而facebook几乎没有这类的问题。

对于此次“行动”,可以看出此人从时间到内容都是精心策划的。一个名为51.js的文件显然就是为了五一准备的,在长假前一天而且是晚上开始,这样人人无法做出快速反应,用户也很难快速得到警告,媒体也不会第一时间发布消息。而站内信的内容更是非常“合理”——标题党吸引点击,由于网络质量不好以及获取并上传通讯录的数据需要一定的时间,特意加了一个视频作为缓兵之计防止你马上关掉,并注明“X分XX秒”有亮点……

至于此人的目的,除了卖钱还有没有其他的不得而知。但我觉得这种事情就算在人民都很淡定的天朝也不应该是一个小事,虽然这比蒙牛什么的看上去影响小一点……而这个漏洞显然要么“精心准备”要么就是内部人士干的(因为那个地方并不很常用)。

截至此文发表,校内在短时间关闭站内信功能后已经重新开放,不知道改了什么,但我刚才打开了那封站内信发现js代码依然可以执行……

你们这帮程序员想死嘛!

本文出自 杨肉的演讲台,转载时请注明出处及相应链接。

本文永久链接: https://yangzhe1991.org/blog/2011/04/%e4%ba%ba%e4%ba%ba%e7%bd%91-%e7%ab%99%e5%86%85%e4%bf%a1/

0

21条评论

  1. leng 2011 年 4 月 30 日 02:46 回复
    Unknown Unknown Unknown Unknown

    人肉了一下这个人, 湖北武汉, 工作应该是在深圳华强北附近

    1. yangzhe1991 2011 年 4 月 30 日 02:47 回复
      Unknown Unknown Unknown Unknown

      问题是godaddy的信息完全可以是假的……

      1. IceBoy 2011 年 5 月 1 日 01:09 回复
        Unknown Unknown Unknown Unknown

        51.js用的的确不是普通法站内信的方式。
        是分享后,点“站内信好友”~

  2. 阿达 2011 年 4 月 30 日 02:57 回复
    Unknown Unknown Unknown Unknown

    人人吧那个关键字了。
    删pm 的话要等数据库工程师 才能用sql删了 一般人没有sql的权限 但是有
    g点的权限 我说什么你明白吧

    1. yangzhe1991 2011 年 4 月 30 日 02:58 回复
      Unknown Unknown Unknown Unknown

      嗯。其实我觉得天朝各种ip定位应该能找到第一封站内信怎么发到,那个人稍微不注意就很容易被抓了……

      1. 阿达 2011 年 4 月 30 日 03:06 回复
        Unknown Unknown Unknown Unknown

        没人会管的。明天等cnbeta吧 你投稿去,人人居然pm不做过滤 这个太恶心了 js过滤很好绕的

  3. kinker 2011 年 4 月 30 日 05:27 回复
    Unknown Unknown Unknown Unknown

    xn.json.build不是内部的,发状态时也用,在xn.app.status.js里面。

    1. yangzhe1991 2011 年 4 月 30 日 13:29 回复
      Unknown Unknown Unknown Unknown

      恩,人人连js混淆都懒得做一下,不知道是太相信自己的水平了或者想让人们拿他的代码学习……起码混淆下还能加快载入速度呢……

      1. kinker 2011 年 4 月 30 日 19:57 回复
        Unknown Unknown Unknown Unknown

        他们前端代码已经是用GWT编译的了,但病毒作者找出了API。

        1. yangzhe1991 2011 年 4 月 30 日 20:16 回复
          Unknown Unknown Unknown Unknown

          GWT吗?所以我觉得有可能是内部的人做的。而且现在淫淫的公关已经出来了,相关的新闻都删了

  4. Pingback: 人人网“暗恋”站内信XSS攻击:黑客的高明与傻叉,和淫淫网的傻叉 « 花生博客

  5. osbertngok 2011 年 5 月 1 日 01:03 回复
    Unknown Unknown Unknown Unknown

    1. Kinker你也找到这个blog了!
    2. 刚想跟楼主说cnbeta,cnblogs和(尤其是)solidot都被公关了。人人网在美国上市之前风声鹤唳啊。

    1. yangzhe1991 2011 年 5 月 1 日 01:18 回复
      Unknown Unknown Unknown Unknown

      是啊,现在大站点的消息消失,人人内部删各种日志、状态。基本就约等于什么也没发生,就像蒙牛一样……

      1. 阿达 2011 年 5 月 4 日 00:53 回复
        Unknown Unknown Unknown Unknown

        最及在研究人人的屏蔽算法, 发现他们的算法真的不错, 一会测试下关键字是什么,其实我真不信是人工山状态。 图片应该是md5 图片的hash然后删掉

        1. yangzhe1991 2011 年 5 月 4 日 04:43 回复
          Unknown Unknown Unknown Unknown

          据说他们成都有个500人专业删贴团队。。

  6. IceBoy 2011 年 5 月 1 日 01:11 回复
    Unknown Unknown Unknown Unknown

    怎么发不了评论?

    1. yangzhe1991 2011 年 5 月 1 日 01:17 回复
      Unknown Unknown Unknown Unknown

      可以的啊?

  7. IceBoy 2011 年 5 月 1 日 01:13 回复
    Unknown Unknown Unknown Unknown

    51.js用的不是普通站内信的流程
    好像用的是你分享一个东西后,“站内信好友”那个流程

  8. IceBoy 2011 年 5 月 1 日 03:32 回复
    Unknown Unknown Unknown Unknown

    XN.get_check 似乎不能用了?

    1. yangzhe1991 2011 年 5 月 1 日 16:58 回复
      Unknown Unknown Unknown Unknown

      显然他们还是知道修复的……

发表回复

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

 
Ɣ回顶部