Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >运维安全2.2—暴力破解的绕过和防范(验证码&token)实验

运维安全2.2—暴力破解的绕过和防范(验证码&token)实验

作者头像
阿dai学长
发布于 2019-09-28 15:24:40
发布于 2019-09-28 15:24:40
2.6K00
代码可运行
举报
文章被收录于专栏:阿dai_linux阿dai_linux
运行总次数:0
代码可运行

概述

  • 暴力破解只不安全的验证码分享
    • on client
    • on server
  • Token可以防暴力破解吗?
  • 暴力破解常见的防范措施

验证码认证流程

验证码绕过实验

On client(client端)

场景展示:

请求分析:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /pikachu/vul/burteforce/bf_client.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 49
Connection: close
Referer: http://127.0.0.1/pikachu/vul/burteforce/bf_client.php
Cookie: PHPSESSID=pdlm34mt5smvnjc3jca054otl0
Upgrade-Insecure-Requests: 1

username=ad&password=add&vcode=1WTL0&submit=Login

检查请求页面的源码:右击——查看页面源码

即,在前端用javascript实现的验证码。

将请求发送到Burpsuite 的 repeater模块:

repeater模块能复现请求,修改vcode后发送请求:

分析response信息:

由上图发现,在没有输入验证码的时候,直接返回的是"username or password is not exists~",说明提交的验证码并没有在后台做验证!

讲该请求发送到intruder模块,因为验证码并未进行校验,所以可以直接跳过验证码进行爆破,方法和2.1节一样,爆破结果如下:

不安全的验证码—On client常见问题
  • 使用前端js实现验证码(纸老虎);
  • 将验证码在cookies中泄露,容易被获取;
  • 将验证码在前段源码中泄露,容易被获取。

On server(server端)

场景展示:用正确的用户名和密码,错误的验证码登陆

然后用正确的验证码和错误的用户名密码登陆,进行请求分析:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
POST /pikachu/vul/burteforce/bf_server.php HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 53
Connection: close
Referer: http://127.0.0.1/pikachu/vul/burteforce/bf_server.php
Cookie: PHPSESSID=pdlm34mt5smvnjc3jca054otl0
Upgrade-Insecure-Requests: 1

username=1111&password=2222&vcode=tkcgz7&submit=Login

将请求发送到repeater模块;

不提交验证码或输入错误验证码,看返回结果:

由此说明,后台对验证码做了校验;

检查验证码会不会过期,生成一个新的验证码,进行多次请求,看返回结果:

用同一个验证码请求多次,返回结果均为上图信息,说明验证码没有做过期处理,即验证码可以重复利用。

再次用2.1节中的方法进行破解,便可以爆破成功!

源码分析

未对验证码设置过期时间!

不安全的验证码—On server常见问题
  • 验证码在后台不过期,导致可以长期被使用;
  • 验证码校验不严格,逻辑出现问题;
  • 验证码设计的太过简单和有规律,容易被猜测。

防范措施

  • 设计安全的验证码(安全的流程+复杂而又可用的图形);
  • 风控规则:对认证错误的提交进行计数并给出限制,比如连续5次密码错误,锁定2小时;
  • 必要的情况下,使用双因素认证

Token对防暴力破解的意义

一个简单的token示例:

一般做法:

  • 将token以"type= 'hidden'" 的形式输出在表单中
  • 在提交认证的时候一起提交,并在后台对其进行校验

但是, 由于其token值输出在前端源码中,容易被获取,因此也就失去了防暴的意义。

一般Token在防止CSRF上会有比较好的功效。

代码语言:txt
AI代码解释
复制
 (adsbygoogle = window.adsbygoogle || []).push({});
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
暴力破解之Token绕过
将下载的源文件放置在phpstudy的WWW目录下,修改WWW\pikachu\inc目录下的config.inc.php。
Andromeda
2023/10/21
1.5K0
暴力破解之Token绕过
暴力破解(基于验证码的绕过)pikachu
不安全的验证码——on client(只在前端处理)绕过 步骤: 1、打开burp suite,打开PHP study,打开Pikachu,点击on client选项 2、输入一次正确的验证码,随意输入账号密码,进行抓包。
逍遥子大表哥
2021/12/17
2.4K0
暴力破解(基于验证码的绕过)pikachu
Pikachu漏洞靶场系列之暴力破解
这是Pikachu漏洞靶场系列的第一篇(应该会连载吧),先简单介绍一下Pikachu这个靶场。该靶场由国人开发,纯中文,且练习时遇到难点还可以查看提示,另外还有配套的学习视频。Windows下可直接在Wamp/phpStudy等集成环境下安装。相比之下,很多人都推荐的DVWA,由于其纯英文的环境,对于刚入门的小白十分不友好,可能部署完之后不知从何下手,容易劝退。所以这里推荐的Pikachu更适合刚入门Web渗透且正在寻找靶场的小伙伴。
Naraku
2021/07/29
2.1K0
Pikachu漏洞靶场系列之暴力破解
运维安全第2节—暴力破解之基于表单的暴力破解实验
如果一个网站没有对登陆接口实施防暴力破解的措施,或者实施了不合理的措施,则称该网站存在暴力破解漏洞。常见类型:
阿dai学长
2019/09/27
1.2K0
运维安全第2节—暴力破解之基于表单的暴力破解实验
【网络安全】「靶场练习」(一)暴力破解漏洞 Burt Force
本篇博文是《从0到1学习安全测试》中**靶场练习**系列的第**一**篇博文,主要内容是**了解暴力破解漏洞以及通过靶场进行实战练习加深印象**,往期系列文章请访问博主的 安全测试 专栏;
sidiot
2024/09/23
3360
09. 验证码暴力破解
客户端发起请求->服务端响应并创建一个新的SessionID同时生成随机验证码,将验证码和SessionID一并返回给客户端->客户端提交验证码连同SessionID给服务端->服务端验证验证码同时销毁当前会话,返回给客户端结果。
汤青松
2020/10/31
4.9K0
09. 验证码暴力破解
【学员笔记分享】pikachu靶场暴力破解
本周我主要计划打知识星球配套靶场里面的pikachu这个靶场,里面涉及了大部分常见的web漏洞,难度比较简单,适合新手练习。这次跟大家分享其中的暴力破解相关题目。
Ms08067安全实验室
2020/05/06
1K0
工具的使用 | Hydra暴力破解工具的用法
Hydra是一款非常强大的暴力破解工具,它是由著名的黑客组织THC开发的一款开源暴力破解工具。Hydra是一个验证性质的工具,主要目的是:展示安全研究人员从远程获取一个系统认证权限。
Gcow安全团队
2020/03/06
5.9K0
Pikachu漏洞平台通关记录
开始复习最基础的Web漏洞,查漏补缺,打好基础,我也尽量把文章写得详细一些,希望对刚入门的小白能有一些帮助。
小简
2023/01/01
3.1K0
Pikachu漏洞平台通关记录
python的反反暴力破解
本文适合刚刚学完 python,光听别人说强大,但是自己没有直观感受过的人。介绍两种防暴力破解的方法,以及用 py 的绕过方法。(暂不考虑 sql 注入,不谈机器学习。)
信安之路
2018/08/08
1K0
python的反反暴力破解
验证码安全问题学习总结
这几天学习了验证码安全的相关内容,在这里做一个总结,把一些的知识点巩固一下,水平有限,大神勿喷。可以参考这篇文章,总结了大部分验证码安全实例,地址 https://blog.csdn.net/Dome_/article/details/90738377
雪痕@
2020/09/27
1.2K0
暴力破解( Hydra | Medusa)
Hydra是一款开源的暴力破解工具,支持FTP、MSSQL、MySQL、PoP3、SSH等暴力破解
Mirror王宇阳
2020/11/12
1.5K0
工具| Nodejs暴力破解实践
135编辑器 问题描述: 当我们在进行网站安全性测试的时候,通常会遇到网站不存在登陆账号错误锁定机制、无验证码防爆破机制等。 如果用户名和密码采用的是明文传输方式,使得我们可以很轻易的无限重放登陆请求数据包,在已知用户名或者密码其中之一的情况下进行暴力破解。 而如果网站在用户登陆的时候对用户名和密码进行了加密处理,要如何快速的进行爆破呢? 代码如下: POST /login/ HTTP/1.1 Host: 192.168.80.131 User-Agent: Mozilla/5.0 (Windows NT
漏斗社区
2018/04/16
3.2K0
工具| Nodejs暴力破解实践
web实验
Burte Force(暴力破解)概述 “暴力破解”是一攻击具手段,在web攻击中,一般会使用这种手段对应用系统的认证信息进行获取。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作。 理论上来说,大多数系统都是可以被暴力破解的,只要攻击者有足够强大的计算能力和时间,所以断定一个系统是否存在暴力破解漏洞,其条件也不是绝对的。 我们说一个web应用系统存在暴力破解漏洞,一般是指该web应用系统没有采用或者采用了比较弱的认证安全策略,导致其被暴力破解的“可能性”变的比较高。 这里的认证安全策略, 包括: 1.是否要求用户设置复杂的密码; 2.是否每次认证都使用安全的验证码(想想你买火车票时输的验证码~)或者手机otp; 3.是否对尝试登录的行为进行判断和限制(如:连续5次错误登录,进行账号锁定或IP地址锁定等); 4.是否采用了双因素认证; ...等等。 千万不要小看暴力破解漏洞,往往这种简单粗暴的攻击方式带来的效果是超出预期的!
菜菜有点菜
2022/03/17
7580
web实验
验证码暴力破解测试[通俗易懂]
找回密码功能模块中通常会将用户凭证(一般为验证码)发送到用户自己才可以看到 的手机号或者邮箱中,只要用户不泄露自己的验证码就不会被攻击者利用,但是有些应用 程序在验证码发送功能模块中验证码位数及复杂性较弱,也没有对验证码做次数限制而导
全栈程序员站长
2022/07/28
1.1K0
Gin-Vue-admin垂直越权漏洞与代码分析-CVE-2022-21660
文章写完了之后,申请CVE有一些麻烦,不过好在还是申请到了,github的员工响应迅速
UzJu@菜菜狗
2022/04/25
1.8K0
Gin-Vue-admin垂直越权漏洞与代码分析-CVE-2022-21660
Pikachu漏洞靶场系列之CSRF
Cross-site request forgery 简称为“CSRF”,在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了。所以CSRF攻击也被称为one click攻击。
Naraku
2021/07/29
2K0
Pikachu漏洞靶场系列之CSRF
Burpsuite识别验证码爆破
众所周知,burpsuite可以使用爆破模块,但是有的登录接口是需要用到验证码验证的,那么这个时候我们就可以用到一个插件来自动识别验证码,然后在爆破模块中调用,实现验证码绕过
Elapse
2021/02/03
9.9K20
PortSwigger之身份验证+CSRF笔记
https://portswigger.net/web-security/all-labs#authentication
FB客服
2021/09/16
4.1K0
突破封闭 Web 系统的技巧之正面冲锋
在互联网安全服务公司乙方工作的人或者进行 SRC 众测等相关渗透测试时,经常碰到客户只给一个 "xxx信息管理系统"、"xxx平台"之类的一个 Web 登录界面的系统的链接地址,其它全凭自己造化,去找漏洞吧!
信安之路
2018/08/08
1.3K0
突破封闭 Web 系统的技巧之正面冲锋
相关推荐
暴力破解之Token绕过
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验