伪随机码漏洞
概述
伪随机码,是程序语言生成的一定范围的一串数字字符,它的范围是可控的,可以遍历的,很多程序员在开发过程中,如果使用了伪随机数,对提交没做限制,会造成漏洞
伪随机码 结构可以预先确定,重复产生和复制,具有某种随机序列的随机特性的序列号。在 WEB 开发中 伪随机码主要用于确定范围 例如 6 位数的范围是 000000-999999 这个范围内随机生成一个值。在 php 里就有这样的函数 rand()函数是产生随机数的一个随机函数例如生成 000000-999999 可以这样设置 rand(000000,999999)在 WEB 安全里 用到这样的伪随机数 一般是 手机获取验证码
如果这个验证码使用这种模式,我们就可以枚举所有数值进行对比,即可绕过
短信验证码漏洞代码分析
从源码中,看到 rand 的范围是数字类型 是可控的,可以通过遍历所有的结果进行验证,因为验证数字的过程没有任何限制,可以穷举所有的结果

伪随机验证码攻击
首先提交手机 获取验证码 抓包发送到 intruder 设置 payload 为 number 设置范围,提交攻击

查看内网的大小 显示正常的数字

伪随机数防御方案
1.使用安全性高的随机码,保证随机码是唯一的。
2.在随用伪随机码进行程序验证时,设置提交的次数,超过指定的次数进行销毁。
3.在一段时间内的次数进行限定,超过无效。
更新: 2025-05-05 14:56:56
原文: https://www.yuque.com/yuhui.net/network/rquzg43z2gss8i80

评论(0)
暂无评论