此篇讲的基本不涉及太多黑客技巧,普通程序员应该就可以看得懂,甚至非技术网友也可以看懂基本原理。只需下载一个抓包工具fiddler,你也可以从web开发变成web安全爱好者

下图中的“来自 Nexus 6”就叫微博尾巴,会显示你用什么设备发的微博

可能只有我们中国人设计的产品才会这么干,把你发微博的设备显示出来

不知道这种设计的需求是什么?暴露更多的用户信息让用户的互动积极性增强?我隐约感觉这是一个满足中国人傻逼文化的一个需求

起码从安全的角度看,这是泄露个人隐私的。它可能会泄露你发微博时的场景,会泄露你发微博时的设备。如果我是做黑产的,我需要一批目标客户的话,我会优先选择这些尾巴来自iphone6s的人

至于尾巴结合时间暴露出的信息,在不同的场景下是可能会对用户产生影响的。比如下面的场景就是一个装逼失败的例子

或者你一个屌丝,刚学会装逼不久,周末发了一条微博,“今晚酒吧人好多,好久没来了,今晚我一定要带个回去”。但微博来源却是“来自 ipad客户端”。既然你在床上刷ipad,为何不选择飞机,却选择装逼。但如果你确实是在酒吧,请你赶紧把ipad收起来放进你的电脑双肩包,跟着别人出来玩一次不容易,多学着点

但是,这个设计可能确实增加了活跃度。你会发现很多聪明逼们在那骂“小米用户傻逼”“锤子用户傻逼”“iphone用户傻逼”“华为用户傻逼”

言归正传。当人们拿着低端的华为乐视魅族等手机时,可能有人会想,我可不可以让微博变成来自iphone6s或iphone7s?当然可以了啦,否则我这篇文章怎么结尾

拽狂炫酷炸屌天的结果图如下

目前,显示成来自iphone7s的漏洞已经修复了,但还是可以显示成任意其他的设备,比如iphone6s

首先,你要成为一个微博会员,微博会员才可以自定义尾巴。我给微博捣过很多乱,为了积德,在这里给微博会员做个广告。欢迎大家购买微博会员,微博赚钱了,大家才有好的微博用

但自定义尾巴只可以让你自定义尾巴的前半部分,后半部分的机型不让你改。所以你只能定义成“真的iphone小米手机”

打开fiddler抓包分析可知,在设置自定义尾巴的过程中,只产生了一个请求。就是获得你手机机型名称的请求,会给你返回手机名称和对应的id

既然只有这一个请求,说明设置后的自定义尾巴结果可能是存在客户端本地的。再抓包从发微博的请求来看,确实是直接传了前缀和机型ID这两个参数。下图是发微博的请求格式,以及两个尾巴相关的重要参数



source_text为前缀,phone_id为机型id。所以,我们试着把发微博的请求中的phone_id给改成别的数字,果然就修改成了其他类型。比如6978这个id就是iphone6s的

为了方便非技术网友们玩耍,我当时还做了个代理,修改获取设备列表请求的返回,直接给你返回iphone6s系列的设备列表。然后你直接在客户端设置就可以了

OK,修改成iphone6s搞定了,那怎么修改成iphone7s呢。微博的机型库里都没有iphone7s这个机型的ID,修改id的方法肯定不管用了

有志者事竟成,这时候就需要一个小技巧了

既然我们可以把尾巴自定义成“前缀+机型”,若我们可以定义成“iphone7s+空白”,那是不是显示的就只是iphone7s了

所以我们可以把参数source_text设置成iphone 7s。然后把phone_id设置成一个非法的值,看看取的值是否是空,以及微博是否做了对空值的容错处理。结果没有想象的顺利,直接改一个超大的id或者错误的id是不可以的,系统会根据其他参数里的一些设备信息会给你生成一个机型。但你再多改几个参数,瞎JB乱改一通,就会发现取出来的值是空了。至于怎么改的,我也忘了

这样修改成iphone7s也成功了。但这个漏洞很快被修复了。因为很多微博员工关注了我,他们是人工IDS

至于可以显示任意其他设备尾巴的漏洞,估计不好修复。顶多可以对id做一个加密,但密钥只要是放在客户端,怎么着都可以拿到,只是增加了攻击成本。这个问题根上不好解决,设备类型和微博之间没有秘密,设备类型无法证明自己的身份

Comments
Write a Comment
  • 呆子不开口 reply

    测试哈哈哈

  • 呆子不开口 reply

    测试哈哈哈

  • 呆子不开口 reply

    测试哈哈哈

  • 呆子不开口 reply

    测试哈哈哈

  • 呆子不开口 reply

    测试哈哈哈

  • 呆子不开口 reply

    测试哈哈哈

  • 呆子不开口 reply

    测试哈哈哈