一、基于表单的暴力破解
大概流程:因为没有验证码,直接输入账户密码就可以登录,所以不断地使用不同的账户或密码尝试登录就可以破解,直接用burp抓包,在数据包把user,passwd设置为变量,跑字典就可以测试出来账户密码;
(1)抓包:先随便输入一个账户密码抓一个数据包
(2)数据包分析:找到账户密码参数
(3)设置变量
(4)挂字典跑测试
二、验证码绕过(on server)
大概流程:验证码分前端和后端认证,后端认证一般会在后台生成验证码,把验证码放入session中,如果验证码没有设置超时策略,一个验证码就可以重复利用;
(1)抓包分析设置变量
(2)挂字典跑测试
三、验证码绕过(on client)
大概流程:前端验证码验证,因为实在本地,数据包不做后端校验,所以我们直接在提交登录的时候,直接在数据包里把验证码删除就可以。
(1)抓包分析
(2)攻击测试
四、怎么查看验证码是前端验证还是后端验证?
大概流程:前端验证一般都是使用JavaScript函数写的,而js代码编译前和编译后代码都是不变的,所以我们只需要在前端源码中查看验证码是否使用了js函数就可以判断;
(1)分析源代码:浏览器按F12进入开发者模式
(2)查找函数
五、token防爆破?
Token的引入:Token是在客户端频繁向服务端请求数据,服务端频繁的去数据库查询用户名和密码并进行对比,判断用户名和密码正确与否,并作出相应提示,在这样的背景下,Token便应运而生。
Token的定义:Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Token前来请求数据即可,无需再次带上用户名和密码。
使用Token的目的:Token的目的是为了减轻服务器的压力,减少频繁的查询数据库,使服务器更加健壮。
大概流程:第一发送请求数据包后,响应数据包里的token会作为第二次请求数据包的token,我们直接抓取响应数据包的token作为下一次请求数据包的token值,即可;
(1)抓包-发送到测试器
(2)设置变量:passwd,token为变量值
(3)提取响应包的token值
(3)设置变量值:passwd变量挂字典,token变量选择递归搜索,会看到提取响应包的token值,线程数选择1,要不然会出错