45分钟内破解首个 OpenSocial 应用程序

来源:岁月联盟 编辑:zhuzhu 时间:2010-02-13

某个化名为“theharmonyguy”的程序员,说自己只是“业余爱好者”,并表示已经破解了Plaxo上的Rock You OpenSocial 应用程序,该程序名称是emote。他特别强调,在45分钟里,他已经将一些表情符号加到了Plaxo的市场副总裁John McCrea的个人说明中去了。

在一封电子邮件中,McCrea说这些表情符号是他自己添加的,他的帐户并没有被劫持。但是我曾让theharmonyguy劫持我的Plaxo帐户,他真的做到了,并且添加了4条表情信息,比如“michael arrington is getting my bling on”以及“michael arrington is w00t”(请看下边的图片,都不是我自己加的)。Theharmoneyguy后来又给McCrea的个人信息中加了一个表情,这个是他无法否认的:

theharmonyguy还指出了Rock You的代码所存在的特殊问题,其中还有一些非常幽默的评论:

那些代码很有趣。比如,有个应用似乎我们还不能使用(John McCrea已经用过了)-目前它加载“请等待”的对话框,该对话框从来不变。不过请看看如下的评论:

// TODO: no error checking - we’re bold… 别检查错误了// TODO: figure out why this is necessary???知道为什么必须这么做吗?  

另外该代码一直在Plaxo和“默认”之间产生分歧,默认的是Orkut。事实上,我敢打赌肯定在一些OpenSocial屏幕上的一些地方会显示些黑体的名字:

if (getContainerType() == “orkut”)    {    friendIds[iNumFriends] = “11285577331363942034″;    friendNames[iNumFriends] = “Raymond Chan”;    iNumFriends = iNumFriends + 1;    friendIds[iNumFriends] = “15479081059638046412″;    friendNames[iNumFriends] = “Jia Shen”;    iNumFriends = iNumFriends + 1;    }  

theharmonyguy说他也曾成功地破解Facebook的应用,包括Superpoke,但是那个破解起来更难些:

Facebook应用破解起来就没那么简单了。我发现Facebook的主要的问题是我能够访问人们跟应用相关的历史;例如,直到最近,我都能访问SuperPoke的任何用户的动作反馈。(我能,所有SuperPoke都能,不知道他们有没有修正这个问题。最后一点,我能访问到所有的SuperPoke动作-他们还是没有改正这个问题,但我这么做只是为了找乐子而已,没有恶意。)

由于Facebook的平台的设置方式特殊,你很难真实地模拟一个用户并像之前那样修改他的个人说明。我确信,在Rock You那边你可以用一些验证码来轻松地解决这个问题,但是这在Rock You上不是固有的——而在Facebook上则是固有的。如果Facebokk不是那样设置的话,我可以像在Rock You上一样能做到很多事情。

噢,我也可以向Facebook的应用中注入——我可以把任意的FBML插入到热门应用的canvas页上。但是我还是做不了什么,因为我得有跟那个程序相关的代码才能跟它进行交互,这种代码可不是随便就能得到的。我不确定Google的iframe是不是也用这样的配置方法。

当然修改表情符号并不算是特别坏的黑客活动;问题在于我能轻易做到这点,建议Google多花点心思让这个新平台更稳定些。如果他们不这么做,那么也许会出现更多危险的漏洞。

更新:Plaxo的主平台架构师Joseph Smarr称他如今已经关闭了该应用:

Michael非常感谢你们提供的信息。看起来好像有些地方工作地不太正常。我认为问题不太严重,例如,有些rockyou代码不区分gadget的“用户”和“游客”(通常很难严格区分),我宁可更谨慎一些,因此我会为gadget做个白名单。

这样做的话,我们就会持有一份严格的白名单,于是就不会有随机的黑客骚扰,而平台本身也在进行中。希望这能够真正运行的OpenSocial代码能够抵过一些小小的、需要忽略的小毛病。