返回介绍

11.2.2 API 登录

发布于 2024-10-11 22:07:48 字数 1278 浏览 0 评论 0 收藏 0

2014 年淘宝被曝光一个影响非常大的逻辑登录漏洞,漏洞发现者在乌云报告该漏洞后获得阿里 5 万元现金的奖励,随后阿里宣布拿出 500 万人民币建立漏洞悬赏计划。这个漏洞跟很多客户端 API 登录的形式差不多,相信大家都有在 QQ 客户端点击邮箱或者 QQ 空间的图标就直接免登录进入的经历,其实在后端也有一个验证登录过程。来看看淘宝当时的漏洞 URL:

https : //login.taobao.com/member/login_by_safe.htm?sub=&guf=&c_is_scure=&from=tbTop&type=1&style=default&minipara=&css_style=&tpl_redirect_url=&popid=&callback=jsonp81&is_ignore=&trust_alipay=&full_redirect=&user_num_id=123456789&need_sign=&from_encoding=%810%851_duplite_str=&sign=&ll=&ei=QaIBU-XLLYze0wHy-YGoCw&usg=AFQjCNGXm310YgBJj5KDzLkZzaOAUl2UnQ&bvm=bv.61535280 , d.cWc&cad=rjt

已经验证登录成功后会跳转到这个链接,这个链接里面有一个 user_num_iduser_num_id 参数,代表当前登录的用户 ID,请求这个链接后服务器端会返回这个用户登录成功后的 Cookie 信息,这里的问题就在于将用户 ID 交给这个程序逻辑的时候,并没有带上唯一的一个 Token,这就导致只要修改 user_num_iduser_num_id 这个参数即可登录任意用户。同样,QQ 客户端点击图标进入 QQ 空间的时候我们可以看到这样一个链接:

http : //ptlogin2.qq.com/igame?clientuin=123456&clientkey=DC81BF8E5DC1DA7918DCA17A78FDF236DD6E41C09432B1DF5694F66B04C18DF54

其中 clientuin 参数为 QQ 号码,clientkey 参数为当前用户登录的 key,只要拿到这个 clientkey 则可以登录当前 QQ 号,对于这样的登录方式需要注意以下几个安全点:

1)登录密钥(clientkey)需要不可预测并且不固定,生成 key 的算法中加入随机字符。

2)API 接口禁止搜索引擎收录。

3)登录密钥当次绑定当前主机,换机器不可用,防止 QQ 木马和嗅探 key。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文