弱Token设计缺陷测试

弱Token设计缺陷测试

在找回密码功能中,很多网站会向用户邮箱发送找回密码页面链接。用户只需要进入 邮箱,打开找回密码邮件中的链接,就可以进入密码重置页面了。找回密码的链接通常会 加入校验参数来确认链接的有效性,通过校验参数的值与数据库生成的值是否一致来判断 当前找回密码的链接是否有效。 例如,网站给出的找回密码的url如下,单击这个链接将跳转到重置密码页面。 http://www.xxx.com/findpwd?uid=xx-uu-xx-sxx&token=1497515314 观察这个链接的参数,uid参数可能是对应修改密码的账户,Token就是之前提到的校 验参数了,这个参数的值看起来像一个时间戳,猜测系统生成这个token的机制就是使用 的时间戳。把这个值通过时间格式化后发现确实变成了日期,那么这个Token就是可预测 的一个时间范围的时间戳,只需要通过这个时间段就可以推测或者暴力枚举出系统生成的 时间戳值了,如图下图所示。

类似这样的弱Token现象有很多,比如将用户的uid加密成MD5或者base64编码,或者直接用uid+4位随机数等这种可预测性的内容作为Token,测试时只需要多发几个找回密码 的请求观察系统每次发送的找回密码链接中的参数值是否有规律即可

修复建议

密码找回的Token不能使用时间戳或者用户邮箱和较短有规律可循的数字字符,应当 使用复杂的Token生成机制让攻击者无法推测出具体的值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值