分享一个验证码暴力撞库漏洞的案例

article/2025/9/27 6:41:11

记录一个验证码暴力破解的案例,安全问题不容忽视呀。

某公司接到用户反馈,应用存在安全漏洞,通过技术手段可以在无手机情况下,获取验证码,直接修改密码成功。如果用户密码被他人修改成功,直接涉及到资产损失问题,无疑是一个非常严重的漏洞。

通过跟用户交流,他是通过暴力撞库的手段,去匹配正确验证码,由于后端服务没有做次数限制,所以可多次试错,通过程序发送请求,很容易就得到正确的验证码,从而修改用户密码。


回过头,看看正常的密码重置流程

  • 进入用户手机号登录页面
  • 点击「忘记密码」 ,输入手机号
  • 接收四位数验证码,填写验证码
  • 后端对验证码进行校验
  • 校验通过后,设置新密码
  • 使用新密码登录账号

漏洞演练

先去注册账号,如果手机号已存在,会提示当前用户已经注册,通过随机生成手机号的方式,去测试是否注册过当前应用,如果已注册,就进入忘记密码页面,通过手机号验证码方式找回账号。

忘记密码页面,输入上面的手机号,点击发送验证码后,后端会下发验证码到该手机号上,这个验证码现在只有两个人知道:

  • 手机号主本人
  • 后端服务

当然是不可能直接打电话给号主本人要验证码的,所以从后端服务下手。

随便输入四位数验证码,点击重置密码,会发送校验验证码的接口,请求内附带上客户端输入的验证码,抓包该请求,通过人为构造验证码的方式,进行撞库,直到成功。

由于验证码是四位数字,所以范围锁定在 0000~9999 内,不断请求,消耗数字就可以了,直到响应内返回成功的状态及 token 字符串。

image-20211102200450457

将 token 字符串、新密码、手机号作为参数传递给更改密码的接口,请求成功后,密码修改成功。

问题分析

1、接口验证码参数为什么没有加密?

这个验证码参数其实是做了加密处理,但是由于在非常老的历史版本上,使用明文传输,为了兼容,所以在低版本的请求上,通过明文传参后端是正常接收并处理的。

2、验证码校验接口,次数没有限制?

这才是根本原因,用户账号是非常重要和基础的业务,后端在更改密码的接口上没有次数限制和风控,应该在试错 N 次后,直接取消本次验证码校验,直接认为失败。


该问题属于安全范畴,日常工作根本不会去注意。这也反映出测试同学在日常工作中,需要通过各种复杂的业务问题,来提高预知风险的能力,丰富项目测试的经验,这才是真正的工作经验。

我认为上述是一个比较好的案例,分享给大家,共同学习。

另外,安利一个好用的接口测试工具 – burp suite


http://chatgpt.dhexx.cn/article/mFTUFEyu.shtml

相关文章

深入浅出了解撞库攻击!

1. 撞库的原理和危害 “撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储…

使用 Burp Suite 暴力破解密码 撞库攻击 从0到1手摸手教学

说明 一个学习的过程 增加自己网络安全知识 切勿用于违法用途 设置密码尽量使用6位以上并规避简单数字组合、加强对同一ip的频繁访问次数限制、设置人机验证减小撞库攻击的危害 用到的工具&环境 本地环境 kali 2022 Burp Suite FireFox 靶机环境 一台服务器 CentO…

【htpwdScan 是一个HTTP暴力破解、撞库测试工具。】

htpwdScan 1.0 htpwdScan 是一个HTTP暴力破解、撞库测试工具。 安装 要求 python3.6 pip3 install requirements.txt特性 支持常见的认证模式:Basic/Digest/NTLM 等 支持对 GET / POST 参数进行暴力破解,支持使用占位符选定参数或参数的一部分 支持批…

MD5碰撞与撞库和题

MD5 相同的情况叫做“碰撞”,现在网络中已经出现了两个相同的 MD5 可执行文件,所以MD5现在已经被弃用了,发生碰撞的概率是1/(2^128)。 SHA-1 也会发生碰撞,但是几率比 MD5 小的多。 2004年,我…

拖库 洗库 撞库的概念

一,背景: 用户数据泄露一直是如今互联网世界的一个焦点,从最近的京东撞库抹黑事件,到之前的CSDN,如家用户数据的泄露,服务商和黑客之间在用户数据这个舞台上一直在进行着旷日持久的攻防战。 对于大多数用…

(云安全)拖库-洗库-撞库

一,背景: 用户数据泄露一直是如今互联网世界的一个焦点,从最近的京东撞库抹黑事件,到之前的CSDN,如家用户数据的泄露,服务商和黑客之间在用户数据这个舞台上一直在进行着旷日持久的攻防战。 对于大多数用户…

java解决撞库的问题_Web安全开发之验证码设计不当引发的撞库问题

感谢某电商平台安全工程师feiyu跟我一起讨论这个漏洞的修复。以往在安全测试的过程中后台经常存在验证码不失效果造成的撞库问题,甚至在一些银行或者电商的登录与查存页面同样存在这个问题,一旦造成撞库无论对用户账号的安全性还是网站的负载都是巨大的挑…

什么是撞库攻击,如何预防撞库攻击?

1. 撞库的原理和危害 “撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储…

撞库详解

撞库攻击是如今最常见的攻击,给企业带来巨大威胁。撞库带来的威胁往往不是直接的,但是由此造成的信息泄露以及进一步的渗透与攻击会更为严重。Akamai的报告显示,2018年五月到十二月期间,共发生了约280亿次撞库攻击,其中…

mysql暴力撞库与弱密码检测

暴力撞库与弱密码检测 最近在生产数据库上碰到了一个问题,觉得挺有意思,总结出来和大家分享下。 关于暴力撞库和弱密码检测。 相信使用数据库的大家应该都不陌生,暴力撞库,简单通俗的讲通过一堆生成的密码,然后用默认…

倾家荡产、隐私全无?独家揭秘撞库攻击!

1. 撞库的原理和危害 “撞库”(Credential Stuffing Attack)在网络安全中是一个古老的概念,按中文的字面意思解读,就是“碰撞数据库”的意思。“碰撞”意味着碰运气,即不一定能成功;而“数据库”中往往存储…

撞库是什么

撞库(Credential Stuffing)是黑客通过收集互联网已泄露的用户和密码信息,生成对应的字典表,尝试批量登录其他网站后,得到一系列可以登录的用户。很多用户在不同网站使用的是相同的帐号密码,因此黑客可以通过…

什么是撞库及撞库攻击的基本原理

6月26日晚,我国大型聊天软件QQ出现了大规模盗号情况,而且是在QQ号本人在线时出现了被盗情况。 6月27日中午,腾讯QQ发布声明称:6月26日晚上10点左右,收到部分用户反馈QQ号码被盗。QQ安全团队高度重视并立即展开调查&am…

企业微信如何关联小程序?

我们在日常使用微信时,经常会用到小程序功能,直接从微信中打开第三方页面,很是方便,那么自从企业微信与微信打通之后,我们该如何将小程序与企业微信联系起来使用呢? 其实,在企业微信中&#xf…

企业微信登录报错:应用程序无法正常启动(0xc0000142);Win10应用程序无法正常启动0xc0000142错误的解决方法

企业微信登录报错,有时候要点击多次才能登陆。 解决办法:创建一个文本,把下面一段复制进去,文本后缀改成.bat,启动运行一下即可。 sc stop NSFFileCtl sc config NSFFileCtl start disabled pause 如下图&#xff1a…

企业微信小程序从开发调试到发布的全流程

企业微信小程序和普通微信小程序两者的关系 可以理解为企业微信小程序就是把普通小程序丢进了企业微信这个app里运行,企业微信小程序的发布依赖普通微信,需要先按照普通微信的发布流程进行发布,再去企业微信平台进行绑定小程序到工作台。 企…

什么是企业应用?

看到“企业应用“这次术语, 在你的下意识里,第一反应能想起哪些相关的词? 我的条件反射是: ERP, CRM, HRM, BI, CMS ...... 企业应用这个词听起来很高大上, 但是什么“企业应用”? 我发现我没法下一个准…

微信小程序个人和企业有什么不一样(个人和企业小程序的区别)

很多朋友在注册微信小程序时不知道微信小程序个人和企业有什么不一样。本文就为大家介绍一下个人小程序和企业小程序的区别。 1、注册流程不一样。在微信公众平台注册的小程序因为个人,小程序注册主体是个人用户所以他的注册流程比较简单,只需要个人身份…

企业软件开发流程

企业开发软件的流程 前言开发一个项目经历的流程(步骤)一、软件项目周期1、软件项目周期的几个阶段 总结 前言 本文记录开发一个项目的流程 开发一个项目经历的流程(步骤) 一、软件项目周期 1、软件项目周期的几个阶段 压缩成7…

四种java企业级应用程序的架构

1、传统三层架构(all in one项目) 传统三层架构大致可以分为表现层,业务层和持久层(数据访问层)。其中表现层负责接受请求和转发请求。业务层负责处理请求(注:事务管理,日志记录等AOP类型的操作均封装在这…