首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >业务安全之短信&邮箱验证码

业务安全之短信&邮箱验证码

作者头像
F12sec
发布于 2022-12-30 07:32:12
发布于 2022-12-30 07:32:12
3.5K00
代码可运行
举报
文章被收录于专栏:F12secF12sec
运行总次数:0
代码可运行

短信&邮箱验证码轰炸

本文对目前网络上与业务安全相关的短信&邮箱验证码进行整理。

收集自:

国外BountyTips

乌云漏洞库

各大安全类媒体(论坛、公众号等)

0x01 特殊符号绕过短信&邮箱轰炸限制

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123 或 email=test@aa.com

Response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"0","message":"发送太过频繁"}

特殊符号绕过

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123 或 email=test@aa.com
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
%00
%0a
%a0
\n
空格
\r
86
+
-
,
.
;
#
@
0
+86
086
0086
26个英文字符
......

0x02 修改返回值绕过短信&邮箱轰炸限制

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123 或 email=test@aa.com

Response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"0","message":"发送太过频繁"}

修改返回值绕过

拦截返回包,将Response中的status值修改为1

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"1","message":"发送太过频繁"}

0x03 修改IP绕过短信&邮箱轰炸限制

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123 或 email=test@aa.com

Response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"0","message":"发送太过频繁"}

修改IP绕过

推一个burp插件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
burpFakeIP是一个伪造ip地址进行服务器爆破的burpsuite插件,主要用来躲避防火墙封锁
https://github.com/TheKingOfDuck/burpFakeIP

使用请看以下文章

(71条消息) 【渗透测试】---如何用burpsuite伪造IP通地塔的博客-CSDN博客burpsuite ip伪造

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123 或 email=test@aa.com
X-Forwarded-For: 36.63.19.215
X-Forwarded: 36.63.19.215
Forwarded-For: 36.63.19.215
Forwarded: 36.63.19.215
X-Requested-With: 36.63.19.215
X-Forwarded-Proto: 36.63.19.215
X-Forwarded-Host: 36.63.19.215
X-remote-IP: 36.63.19.215
X-remote-addr: 36.63.19.215
True-Client-IP: 36.63.19.215
X-Client-IP: 36.63.19.215
Client-IP: 36.63.19.215
X-Real-IP: 36.63.19.215
Ali-CDN-Real-IP: 36.63.19.215
Cdn-Src-Ip: 36.63.19.215
Cdn-Real-Ip: 36.63.19.215
CF-Connecting-IP: 36.63.19.215
X-Cluster-Client-IP: 36.63.19.215
WL-Proxy-Client-IP: 36.63.19.215
Proxy-Client-IP: 36.63.19.215
Fastly-Client-Ip: 36.63.19.215
True-Client-Ip: 36.63.19.215
X-Originating-IP: 36.63.19.215
X-Host: 36.63.19.215
X-Custom-IP-Authorization: 36.63.19.215

Response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"1","message":"发送成功"}

0x04 修改Cookie绕过短信&邮箱轰炸限制

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cookie:JSESSIONID=xxxxxxxxxx
phone=111*****123 或 email=test@aa.com

Response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"0","message":"发送太过频繁"}

修改Cookie绕过

①删除cookie

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123 或 email=test@aa.com

②重新获取一个新的cookie

换个浏览器重新获取就行了

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Cookie:JSESSIONID=yyyyyyyyyy
phone=111*****123 或 email=test@aa.com

0x05 参数污染绕过短信&邮箱轰炸限制

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123 或 email=test@aa.com

Response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"0","message":"发送太过频繁"}

参数污染绕过

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123&phone=111*****456&phone=111*****789

可能一次性3个手机号都接收到验证码

也可以都写同一个手机号试试能不能接收到3次短信

之前看到过一个案例

还可以这样

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123,111*****456,111*****789

将参数改为数组形式绕过短信轰炸限制

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone[]=111*****123 或 email[]=test@aa.com

0x06 并发绕过短信&邮箱轰炸限制

推一个burp插件

turbo intruder

可在 burpsuite 的 BApp Store 直接安装该插件

团员成员十二的案例里有

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
https://www.yuque.com/shier-mfbht/qh4bgb/zcee3k

注意下数据包里要加个 req:%s

0x07 通过写脚本定时发包绕过短信&邮箱轰炸限制

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111****1234 或 email=test@aa.com

Response

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
{"status":"0","message":"请60s后再发送"}

用python写个脚本加个 time.sleep(60) 每60s后发包即可

短信&邮箱验证码转发

两个案例来自团队成员十二

关于验证码的那些漏洞 · 语雀 (yuque.com)

0x01 修改请求包实现短信&邮箱验证码转发

案例一

用户绑定了手机号,正常来说是获取绑定手机号的短信,通过burp修改成其他手机号

把这个手机号改成其他手机号的

点击提交,抓包改成其他刚刚接收短信的手机号

0x02 特殊字符实现短信&邮箱验证码转发

案例二

加个逗号后面接上需要转发的手机号,因为开发可能使用数组就导致同时把验证码发给两个手机号

参数污染也可能实现转发

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111*****123&phone=111*****456&phone=111*****789

还有数组的方式

Request

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=111****1234 或 email=test@aa.com

修改为

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
phone=[111****1234,111****4567] 或 email=[test@aa.com,test@bb.com]

短信&邮箱验证码弱耦合

0x01 验证码未与请求宿主绑定

手机号1点击获取验证码,得到验证码未ZXCV。

手机号2输入验证码ZXCV,成功通过验证。

0x02 验证码未与特定功能点绑定

找回密码处获取短信验证码

然后到登陆处使用刚刚获取的短信验证码,成功通过验证。

短信&邮箱验证码回显

案例来自十二

短信&邮箱验证码DDOS

这个例子是个特例

案例如下

https://cloud.tencent.com/developer/article/1195088

https://blog.csdn.net/Adminxe/article/details/105918280

刷新验证码,若发现在请求头中有对验证码参数可控的操作,可以尝试是否能引发DDOS

短信&邮箱验证码内容可控

经典TikTok案例

https://www.freebuf.com/vuls/224963.html

乌云案例

https://wooyun.website/show.php?uid=bI5ic82NWiGyJ0N2LJqTerytFYVGC6CPj4oNOH3b

额外的补充

漏洞挖掘在于细心尝试,可能前台登陆处发送短信验证码不存在任何漏洞,但是可以尝试登陆后查看后台中是否有与发送短信&邮箱验证码相关的功能点,例如投诉、反馈、绑定、换绑、礼品兑换等等。

参考:

国外:

https://blog.deteact.com/common-flaws-of-sms-auth/

国内:

https://www.yuque.com/shier-mfbht/qh4bgb/zcee3k#NCKmS

https://xz.aliyun.com/t/7926#toc-11

https://www.anquanke.com/post/id/93878

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-10-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 F12sec 微信公众号,前往查看

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

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

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
SRC低危捡漏之短信轰炸
本文属于OneTS安全团队成员Asoul的原创文章,转载请声明出处!本文章仅用于学习交流使用,因利用此文信息而造成的任何直接或间接的后果及损失,均由使用者本人负责,OneTS安全团队及文章作者不为此承担任何责任。
OneTS安全团队
2025/02/07
5770
SRC低危捡漏之短信轰炸
关于验证码的那些漏洞
手机号码前后加空格,86,086,0086,+86,0,00,/r,/n, 以及特殊符号等
黑战士
2022/10/06
3.3K0
国内外临时匿名邮箱及接收手机短信验证码网站
因为行业特殊,所以一直有各种相关需要,于是这些年从各个地方收集了一些国、内外免费临时接收邮箱及手机短信验证码的网站平台,数量比较多,抽时间进行了一些整理,在这里总结记录一下。
HACK学习
2019/08/05
156.4K2
国内外临时匿名邮箱及接收手机短信验证码网站
黑马瑞吉外卖之移动端验证码登录使用qq邮箱
pc端的后台管理我们剩下有订单明细还没有进行开发,由于订单这边需要移动端下单后才可以看到订单,所以我们需要去先在移动端开发一些功能后,再回过头让订单这边进行一个展示。
兰舟千帆
2022/10/04
1.5K0
黑马瑞吉外卖之移动端验证码登录使用qq邮箱
边缘ob,验证码攻击
今天带大家认识一下验证码的真面目,本文参考N10th大佬文章,不得不说思路就是广啊,我参考后直接找案例验证,废话不多说,直接上菜。
字节脉搏实验室
2020/11/06
2.1K0
边缘ob,验证码攻击
个人开发者短信验证码接入方案技术分析与实践
在开发个人项目时,短信验证码是用户注册、登录验证等场景的必需功能。然而,传统短信服务提供商大多要求企业资质,给个人开发者造成了技术实现上的困难。本文将从技术角度分析这一问题,并分享一些实用的解决方案。
外滩首席运维
2025/06/09
1450
渗透测试之攻破登录页面
登陆界面最直接的就是密码爆破,上面说的那些漏洞我也说了,很难遇到!而对于爆破最重要的不是用的哪个工具,而是字典好不好,这里用的bp!
故里[TRUE]
2023/04/19
2.3K0
渗透测试之攻破登录页面
邮箱验证
今天分享的这句话,是管理学教授彼得·德鲁克说过的一句名言,大意是『没有什么比有效地做那些根本不需要做的事更无效的了』让我们不要浪费时间在那些无用的事上。
小闫同学啊
2019/07/18
4.9K0
邮箱验证
注册模块上线前安全测试checklist
许多应用系统都有注册模块,正常用户通过注册功能,获得应用系统使用权限;而非法用户通过注册模块,则是为了达到不可告人的目的,非法用户可以通过注册模块与服务端进行交互(一切用户输入都不可信),因此系统上线前,有必要对注册模块进行重点测试。
FB客服
2020/02/24
1.2K0
邮箱发送验证码和短信发送验证码的学习笔记
思路是 随机生成一个验证码code,然后存入redis,设置过期时间,然后发送给用户,用户填好后从前端再传回,此时将用户传的code跟redis中存入的code对比,相同true,否则false
全栈程序员站长
2022/11/04
4.5K0
邮箱发送验证码和短信发送验证码的学习笔记
①实现基于session的登录流程:发送验证码、登录注册、校验登陆状态
用户输入手机号,点击发送按钮进行手机号提交,程序会校验手机号是否合法,不合法时要求用户重新输入手机号,合法则在后台生成对应的验证码并保存至session,之后通过短信方式将验证码发送给用户。
.29.
2023/11/29
1.1K0
①实现基于session的登录流程:发送验证码、登录注册、校验登陆状态
一次短信验证码整改实验
这个短信验证码在并发量非常大的情况下有可能会失效,后续会进行整改升级,保证线程安全
阿东
2021/08/16
1.2K0
你的 Java 验证码和登录程序中可能也存在这样的漏洞
进行这个整理,是因为在XXX项目的时候,发现登录模块的忘记密码功能,在验证用户身份的时候是通过手机验证码验证的。通过修改响应包的返回参数值,可以绕过验证,进入第三步的密码重置。还有最近测试的一个sso登录,也存在验证码问题。
业余草
2020/02/11
2.5K0
手把手带你在集成SpringSecurity的SpringBoot应用中添加短信验证码登录认证功能
在上一篇文章一文理清SpringSecurity中基于用于名密码的登录认证流程中笔者有详细地介绍了Spring Security登录认证的流程,也为我们在工作中面需要实现自定义的登录认证如手机号+短信验证码、邮箱地址+邮箱验证码以及第三方登录认证等方式的扩展做好了准备。那么本文,笔者就手把手带大家实现在集成了Spring Security的SpringBoot项目中如何增加一种手机号+短信验证码的方式实现登录认证。
用户3587585
2022/04/14
2.8K0
手把手带你在集成SpringSecurity的SpringBoot应用中添加短信验证码登录认证功能
用 Django REST framework 来实现一次性验证码(OTP)
一次性验证码,英文是 One Time Password,简写为 OTP,又称动态密码或单次有效密码,是指计算机系统或其他数字设备上只能使用一次的密码,有效期为只有一次登录会话或很短如 1 分钟。OTP 避免了一些静态密码认证相关系的缺点,不容易受到重放攻击,比如常见的注册场景,用户的邮箱或短信会收到一条一次性的激活链接,或者收到一次随机的验证码(只能使用一次),从而验证了邮箱或手机号的有效性。
somenzz
2021/09/14
2K0
日常划水:短信验证码开发实例
我一生的文章都会放在这里,我的博客,我希望每一行代码,每一段文字都能帮助你。 https://github.com/CrazyCodes...
猿哥
2019/07/10
8790
基于 Session 短信验证码登录
基于 Session 短信验证码登录获取验证码正则工具类package com.hmdp.utils;public abstract class RegexPatterns { /** * 手机号正则 */ public static final String PHONE_REGEX = "^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\\d{8}$"; /** * 邮箱正则 */ publi
ruochen
2022/08/05
7.5K0
金融行业平台常见安全漏洞与防御
一、前言 互联网金融是这两年来在金融界的新兴名词,也是互联网行业一个重要的分支,但互联网金融不是互联网和金融业的简单结合,而是在实现安全、移动等网络技术水平上,被用户熟悉接受后,适应新的需求而产生的新
FB客服
2018/02/05
3K0
金融行业平台常见安全漏洞与防御
发送短信验证码和邮箱验证码—Java实现
  短信验证码都是调用一些接口来进行短信的发送,短信验证码在登录、注册等操作中使用的最广泛,本文这一节演示如何使用Java制作一个简单的短信验证码登录。
端碗吹水
2020/09/23
8.5K0
发送短信验证码和邮箱验证码—Java实现
JAVA实现利用第三方平台发送短信验证码
前段时间自己做的一个小项目中,涉及到用短信验证码登录、注册的问题,之前没涉及过这一块,看了别人的博客其实也是似懂非懂的,现在就将自己做的利用第三方短信平台来发送验证码这个功能记下来。
用户7353950
2022/06/23
6.2K0
JAVA实现利用第三方平台发送短信验证码
推荐阅读
相关推荐
SRC低危捡漏之短信轰炸
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验