实验环境:pikachu靶场的前端验证,后端验证以及token防爆破验证
目的:绕过验证码进行爆破
使用到的工具:burp抓包工具
前端验证:顾名思义就是在我们的电脑端进行验证,验证码匹配正确后电脑才会向服务器进行报文的发送,否则不发送报文。
后端验证:顾名思义就是在服务器端进行验证码的匹配验证,电脑端无论输入的验证码正确与否,都会向服务器成功发送报文。
token验证:电脑端向服务器端发送请求报文时,会附带一个token的value值,服务器会将此value值进行匹配并向电脑端发送响应报文,此时的响应报文中不但含有是否登录或者验证成功的响应信息,还附带着新的token的value值,以便下一次登录验证使用
实验步骤:
一、前端(client)验证的绕过
①先打开pikachu靶场,点击验证码绕过(on client),随便输入用户名和密码,但是验证码一定要正确,否则burp无法抓到相应的包。输入完后先不着急点击login。
②打开burp抓包工具进行抓包后再到浏览器端点击login登录
③右击报文,将报文转发至攻击模块
④添加爆破参数,并选择相对应的攻击模式(cluster bomb)
⑤设置相对应的字典
⑥进行爆破,并根据报文长度进行判断是否爆破成功
二、后端(server)验证绕过
①先打开pikachu靶场,点击验证码绕过(on server),随便输入用户名和密码,此时的验证码可以随便输入也可以直接输入正确。输入完后先不着急点击login。
②打开burp抓包工具进行抓包后再到浏览器端点击login登录
③右击报文将报文发送至攻击模块,选择攻击模式(cluster bomb),并在攻击模块中选择爆破参数,以及将错误的验证码修改为正确的验证码,如果在浏览器端输入的验证码为正确的就不用再修改
④导入或者写入字典
⑤进行爆破攻击,并根据报文长度进行判断是否攻击成功
三、token防爆破攻击
①①先打开pikachu靶场,点击token防爆破,随便输入用户名和密码,输入完后先不着急点击login。
②打开burp抓包工具进行抓包后再到浏览器端点击login登录。此时观察报文会发现用户名与密码后面跟随了一个token值
③右击报文将报文发送至攻击模块,选择攻击模式(pitchfork),并在攻击模块中选择爆破参数。由于token防爆破一般适用两个参数的爆破,因此我们将username更改为正确的用户名admin
④为密码蚕食导入字典
⑤为token参数设置攻击type为recursive grep递归攻击
⑥设置攻击最大线程为1。
⑦为token参数设置自动匹配提取,双击token value的值进行选定并复制
⑧返回payload界面,将刚刚复制的值添加到初始值
⑨最后进行爆破攻击,并根据报文长度进行判断是否攻击成功
实验总结:
1、前端验证就是一个摆设,并没有太大的防护作用
2、后端验证时,电脑会先发送一个带有输入的用户名密码以及验证码的报文,随后再发送一个报文来告诉服务器端这个验证码已经被使用了,请求发送一个新的验证码用来下一次的登录使用,因此在后端绕过中最主要的就是将第二个请求更换验证码的报文给拦截即可
3、处理token防爆破时,主要就是要将服务器返回的token值给自动提取出来并匹配给设定的token参数
实验后思考:验证绕过与token防爆破攻击中都是利用字典来快速的登录,如果这时候在服务器端设置的登录次数的限制或者检测,以上方法都无法攻击成功,那还有其他的方法来躲避这种限制与检测吗?