WEB安全新玩法 [9] 重置密码之验证流程防绕过

一般来说,业务流程中出现多个操作环节时,是需要顺序完成的。程序设计者往往按照正常用户的操作顺序实现功能,而忽略了攻击者能够绕过中途环节,直接在后续环节上进行非法操作。iFlow 业务安全加固平台能够在不修改网站程序的情况下,强制流程的顺序执行。


某网站系统在用户重置密码时,需进行算术题人机识别验证,再进入邮箱验证码验证环节,通过后才能真正地重置密码。由于程序设计不当,攻击者可以输入任意受害者账号,并正常完成算术题验证后,直接绕过邮箱验证码验证过程,进入到重置受害者密码的环节。我们接下来会看到如何利用 iFlow 来防范这类流程绕过。




一、原始网站


1.1 正常用户访问

用户进入登录页面,点击找回密码链接。

pic1

在第一步确认账号页面中输入用户名和算术题验证码。

pic2

正确提交答案后,网站向用户的注册邮箱发送验证码。用户进入第二步进行安全验证的页面,用户将邮件中的验证码在页面中输入。

pic3

邮件验证码正确,则用户可在第三步设置新密码中重置密码。

pic4

HTTP 交互流程如下:

正常用户 浏览器 Web服务器 邮件系统 点击找回密码链接 GET /one/getpassword.php 显示:第一步页面 填写用户名和算术题验证码 POST /one/getpassword.php action=step1,username=test01 发送验证码到邮箱 显示:第二步页面 以test01收取验证码 填写邮箱验证码 POST /one/getpassword.php action=step2,yzm=338238
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值