挖洞联盟第一季漏洞精选
0×01 密码找回绕过中华保险商城任意用户登陆绕过 vulbox-2016-016879
重置密码这个业务场景通常分为多步,良心厂商通常会在最后一步再验证一次短信验证码,如此可能会想到爆破短信验证码。如果再做了爆破限制,是否就完全稳妥了?
中华险商城在密码重置上就出现了类似问题:在密码重置流程中,通过修改响应包,绕过短信验证页面
http://image.3001.net/images/20160406/14599200086387.png
进入最后一步,输入新密码:
http://image.3001.net/images/20160406/14599200967154.png!small
输入新密码后点下一步,抓取请求包
http://image.3001.net/images/20160406/14599201127256.png
可以看到请求包中仍然会传输短信验证码,所以服务端验证最终是失败的。骗不到服务器,但不要放弃骗浏览器,我们仍然修改状态码为true,果然浏览器被骗了
http://image.3001.net/images/20160406/14599201345572.png!small
通常在密码重置成功后会自动登录,所以可以尝试刷新下页面
http://image.3001.net/images/20160406/14599201505051.png!small
最终,我们骗了浏览器,浏览器又骗了服务器。
0×02 条件绕过
绕过招行掌上生活app限制,换取大量商品 vulbox-2016-017284
薅羊毛是现在十分普遍的问题,如首次注册赠送代金券甚至免单,或者优惠活动只能秒杀,并且每个用户只有一次机会。大多羊毛党的惯用伎俩是使用大量手机号来获取优惠,然而还有更简单的办法,利用厂商的一些漏洞实现。
http://image.3001.net/images/20160406/14599205267617.jpg!small
在某银行app中,可用超低积分秒杀商品,并且每个人只有一次机会。
http://image.3001.net/images/20160406/14599206899354.png!small
此时我们点击立即抢购
http://image.3001.net/images/20160406/14599206437370.png!small
然后抓包,再开大线程,并发重放
http://image.3001.net/images/20160406/14599207725120.png
可获取一批有效优惠券但是此处白帽子并没有使用任何工具辅助,也没抓包重放,仅仅是利用麒麟臂点“立即抢购”然后“返回”,重复这个操作,即获取这么多优惠券,可见此类薅羊毛成本极低,仅需一只麒麟臂。
0×03 登录绕过
阳光保险APP登陆绕过,泄漏用户信息 vulbox-2016-017702
登录处可能会存在很多问题,如果出现注入则会导致万能登陆在某保险APP中,登录处填写任意手机号
http://image.3001.net/images/20160412/14604537794198.png!small
正常提交后返回
http://image.3001.net/images/20160412/14604537907991.png!small
再次提交,抓包拼接SQL语句
http://image.3001.net/images/20160412/14604543071034.png!small
重置密码的最后一步请求包中,发现Cookie中带上了这个sessionid,并且body中没有用户名字段,猜想sessionid是用户标识的密文,或是在服务端与用户绑定的标识字段。
http://image.3001.net/images/20160412/14604543189506.png!small
根据这个猜想,先任意输入其他用户手机号,进入密码重置,并获取该手机号对应的sessionid。然后使用自己的手机号重置密码,在最后一步替换Cookie中的sessionid,最终成功重置其他用户的密码。
0×06 越权
国联证券某处越权,导致大量用户密码泄 vulbox-2016-016610
首先通过各种小技巧,找到用户信息未授权访问页面
发现有一列HTTPPassword,通过脚本取出用户名密码哈希字段,之后使用John进行破解,可成功获取大量用户密码。贴2条密文,可识得此加密算法:(Gn0hLj/3RI66QBciXeOT)(G60/bu2yEvEGqfe/gA/c)
不错,精贴
Re: 挖洞联盟第一季漏洞精选
这些案例挺经典的,尤其是第一个密码找回绕过,思路很有意思——虽然服务端验证了验证码,但通过修改响应包欺骗了前端,最终利用前端与服务器的交互逻辑完成了绕过。看来前端校验和后端校验的一致性真的很重要,不能完全信任客户端传来的数据。 第二个并发重放问题也很有代表性,即使没用到自动化工具,单纯靠快速手动点击也能薅到羊毛,说明服务端缺乏有效的防重放机制或者频率限制。对于这种抢购场景,加个令牌或者用户级别的锁应该能缓解。 后面登录绕过和越权部分也很有启发,特别是通过替换sessionid来重置其他用户密码的思路,反映出服务端对会话标识与用户的绑定校验不严格。总体来说,这些漏洞都提醒我们在开发时要注意前后端双重校验、防止并发操作、做好权限控制。感谢分享!Re: 挖洞联盟第一季漏洞精选
看完楼主的整理,这几个案例都很典型。尤其是中华保险那个密码找回绕过,通过修改响应包骗过浏览器再骗服务器,思路确实巧妙。招行掌上生活那个“麒麟臂”薅羊毛的例子也很有意思,说明并发控制不严哪怕手动操作都能钻空子。阳光保险的登录绕过和国联证券的越权则提醒我们,敏感字段的加密和权限校验必须严谨,不然用户信息直接暴露风险很大。多谢分享,这类实战复盘对理解漏洞利用逻辑很有帮助。Re: 挖洞联盟第一季漏洞精选
感谢分享!这几个案例都很经典,特别是“骗浏览器再骗服务器”的思路,在早期的移动端或轻后端校验的场景下确实挺常见。条件绕过那个“麒麟臂”手动点券的案例也很有意思,说明有时候最简单的并发问题反而容易被忽略。越权拿到密码哈希那段,不知道楼主有没有尝试还原出完整的加密算法?看起来像某种对称加密,但没直接见全貌。期待后续更多精彩案例!
页:
[1]