黑客技术:一个“登录框”引发的安全问题(3)

输入用户名、密码、验证码后,点击登陆按钮同时将数据包使用burpsuite进行拦截,并使用Repeater模块或Intruder模块进行数据重放,重新发送五次观察页面变化,是否会提示验证码输入错误等信息
示例:

alt

此登录功能时存在图形验证码的,在输入了正确的图形验证码之后进行数据重放,发现图形验证码没有做到及时失效

风险分析:

图形验证码一般是防止使用程序恶意注册、暴力破解用户名密码或者批量发帖而设置的。在页面初始化时服务器向页面发送一个随机字符串,同时在Session里也保存一份,当用户提交时将随机数一起post到后台,通过与Session中保存的值对比,如果不相同,则有可能是恶意攻击。

修复方案:

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

2、限制用户提交的验证码不能为空

3、判断提交的验证码与服务器上存储的是否一致

4、禁止将验证码明文信息发送至客户端

短信验证码绕过

漏洞描述:

一些网站使用手机短信登录,短信验证码可被绕过,执行其他操作。

测试方法:

1.请求发送短信,填写任意验证码,然后提交其他操作请求,将验证码参数置空或删除,测试是否可绕过检测;

2.尝试特权验证码,如000000、111111等;

3.同一个短信验证码是否能使用多次;

示例:

正确的逻辑应当是,短信验证码获取后,服务器校验短信验证码的来源以及有效性,使用一次后应该立即失效。但是我遇到的这个就是使用验证码登录后,注销用户登录后再一次使用验证码发现依然登陆成功,也就是短信验证码没有被删除

风险分析:

修改/重置密码、交易操作等功能通常需要短信验证码,若验证码可绕过,攻击者可利用该漏洞进行重置他人密码或转账等危险操作。

修复方案:

1.若存在特权验证码,建议将其删除;

2.应用服务端应严格校验验证码参数是否为空,格式是否正确;

3.关键操作每提交一次请求,应发送新的短信验证码,并且不可继续使用旧的验证码。

短信验证码可暴力破解

漏洞描述:

短信验证码位数太短或有效期太长导致可暴力破解

测试方法:

点击发送短信验证码,输入任意验证码,提交请求,使用burpsuite拦截请求,在intruder模块设置验证码参数为枚举变量,这是payload类型为numbers,对验证码进行暴力破解。

示例:

这里的短信验证码可被暴力破解,是因为并没有设置短信验证码使用错误几次后失效,故可被暴力破解

alt

风险分析:

修改/重置密码、交易操作等功能通常需要短信验证码,若验证码可暴力破解,攻击者可利用该漏洞进行重置他人密码或转账等危险操作。

修复方案:

1.短信验证码不少于6位;

2.有效期不超过1分钟;

3.验证码错误次数超过上限应采取账户锁定策略。

短信攻击

漏洞描述:

短信攻击时常见的一种攻击,攻击者通过网站页面中所提供的发送短信验证码的功能处,通过对其发送数据包的获取后,进行重放,如果服务器短信平台未做校验的情况时,系统会一直去发送短信,这样就造成了短信轰炸的漏洞。

测试方法:

1、手工找到有关网站注册页面,认证页面,是否具有短信发送页面,如果有,则进行下一步。

2、通过利用burp或者其它抓包截断工具,抓取发送验证码的数据包,并且进行重放攻击,查看手机是否在短时间内连续收到10条以上短信,如果收到大量短信,则说明存在该漏洞。

示例:

点击获取验证码同时拦截数据包

alt

使用burpsuite进行数据重放

alt

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyxsdz.html