验证码重复利用漏洞的测试与修复办法

         一些网站登录框中存在图形认证代码,防止暴力破解攻击,但正常逻辑是在前端输入认证代码后进行认证图形认证代码的正确性,如果是真的,则进行登录操作,如果是假的,则返回认证代码输入错误,使用一次认证代码应立即失效。但是,有些网站的认证代码可能是可控的,输入特殊的文字可能会欺骗服务器和认证代码使用一次后没有立即更新(所谓的认证代码可以自动识别这个问题,我个人认为没有鸡蛋,所以没有写)。

测试方法:输入用户名、密码、验证码后,点击登录按钮,同时用burpsuite拦截数据包,并使用repeater模块或Intruder模块进行数据生,重新发送5次观察页面变化,检查代码输入错误等信息。该登录功能存在图形认证代码时,输入正确的图形认证代码后进行数据再放,发现图形认证代码没有立即失效。

风险分析:图形认证代码一般是防止使用程序恶意注册、暴力破解用户名密码或批量投稿而设置的。在页面初始化时,服务器向页面发送随机字符串,同时在Session中保存一个,用户提交时将随机数量一起post到后台,与Session中保存的值进行比较,果不同,可能是恶意攻击。

修复方案:

1、系统在开发时注意验证识别后,销毁session中的验证代码。

2.限制用户提交的验证码不能是空的。

3.判断提交的验证代码是否与服务器存储的一致。

4.禁止将验证代码的明确信息发送给客户。

分享: