密码找回逻辑漏洞—Web安全深度剖析(5)

发表于:2015-5-13 10:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:张炳帅    来源:51Testing软件测试网原创

  10.2.3  密码找回逻辑漏洞
  为了防止用户遗忘密码,大多数网站都提供了找回密码功能。常见的找回密码方式有:邮箱找回密码、根据密码保护问题找回密码、根据手机号码找回密码等。虽然这些方式都可以找回密码,但实现方式各不相同。无论是哪种密码找回方式,在找回密码时,除了自己的用户密码,如果还能找回其他用户的密码,就存在密码找回漏洞。
  密码找回漏洞在逻辑漏洞中占了较大的比例。测试密码找回漏洞与其他逻辑漏洞的方法相同,其中必经的两个步骤是:熟悉业务流程(密码找回过程)与对流程中的HTTP请求分析。下面将介绍一个简单的密码找回漏洞。
  http://www.xxser.com提供了密码找回的功能,根据网页提示,可以发现业务流程为:输入注册邮箱地址→提交→收取邮件→更改密码,如图10-13所示。
  
图10-13  找回密码流程
  按照图中的提示输入邮箱地址,单击"继续"按钮后,跳转到发送成功页面,如图 10-14所示。同时邮箱也接收到了网站发来的重置密码链接。
  
图10-14  邮件发送成功页面
  看起来这些步骤并没有漏洞,但有些"东西"隐藏在背后,只有抓包才能看到。在收取邮件重置链接步骤看到有一个重新发送的超链接,对此使用Burp Suite进行抓包,如图10-15所示。
  
图10-15  重新发送的HTTP请求
  此时可以猜想,网站是否根据此邮箱发送的重置密码链接。尝试修改参数为另一个邮箱(xxser@xxser.com),然后发送,发现果然发来了密码重置邮件,如图10-16所示。
  
图10-16  密码重置邮件
  这样一个任意修改密码漏洞就出现了,如果知道其他用户的邮箱,就可以更改他的密码。这个案例中最大的错误就是"重新发送"功能使用了客户端的邮箱,而程序开发人员根本没有想到,"用户"会修改隐藏在HTML中的邮箱。
  10.2.4  支付逻辑漏洞
  不同的功能分别对应不同的逻辑漏洞,例如,密码找回功能就对应任意修改密码的问题,查询功能可能存在越权的问题,但查询功能最多是让你看到了不该看到的资源,却不会造成一些其他的漏洞,如删除某些资源,也就是说,只与查询有关的漏洞。而支付逻辑漏洞与钱有关,那么对应的则是"刷钱"、"免费购买"等漏洞。
  同样,测试支付逻辑漏洞的重点是对HTTP请求及业务流程的分析。在前面简单介绍了支付的业务流程,接下来将详细介绍支付逻辑漏洞。
  在测试支付逻辑漏洞时,也有几个侧重点,就是由用户提交的参数,如:购买数量、商品价格、折扣、运费、商品信息的中转页面、跳转到支付接口时等参数。接下来介绍几种常见的逻辑支付漏洞场景。
本文选自《Web安全深度剖析》第十章,本站经电子工业出版社和作者的授权。
版权声明:51Testing软件测试网获电子工业出版社和作者授权连载本书部分章节。
任何个人或单位未获得明确的书面许可,不得对本文内容复制、转载或进行镜像,否则将追究法律责任。
31/3123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号