一个有意思的漏洞组合场景

实现一个业务功能,也有着很多不同的实现方式,当业务逻辑考虑不严谨的时候,同一个业务功能模块存在着很多漏洞场景,如密码重置漏洞、商城支付漏洞等。

本文分享一个有意思的案例,通过漏洞组合实现任意密码重置,同时,也是验证码验证一次有效的利用场景。

1、在这个密码重置模块里面,只需输入手机号和手机验证码即可进入修改密码界面,看到这个界面,很多人会尝试暴力破解,但会发现验证码仅能使用一次,爆破成功,但输入的时候已经失效了,怎么办?

2、 我们填写用户的手机号码,获取验证码,随意输入几个验证码,抓包:

我们注意到返回的是失败,如果返回成功,是什么样子呢?通过测试,如果验证码输入正确,返回{"data":"success"}。

3、修改返回包为{"data":"success"},即可绕过验证码验证,进入修改密码界面。

4、在这里,输入两次新密码,提示密码修改失败。查看HTTP交互过程,Token值不变。猜想:如何把Token变成有效的,这样才能修改成功。

{"Token":"eyJhbGciOiJIUzI1NiJ9.eyJpczMiOiJmYW5ydWFuIiwiaWF0IjoxNTYyOTI0MzUxLCJzdWIiOiIxaDA0MDI5OSIsIgp0aSI6Imp3dCJ9.Mo0KuEZwOuT6pPsJCydgKD-qVjIieaVAWDX7tchk4NY","newPassword":" IGFiY2RlMTIz"}

5、这里,我们利用系统的另一个缺陷,因对手机验证次数没有限制,遍历000000-999999区间,暴力破解手机验证码,成功后返回success

6、此时,输入用户新密码,保存后修改成功。

简单来说,这个漏洞场景是这样:

A、前端验证绕过可以直接进入密码修改界面,但Token无效,无法成功修改密码。

B、手机验证码可以暴力猜解,但验证码一次失效,爆破出来再输入验证码无效。

这个时候,通过A+B的漏洞组合,利用前端验证绕过进入修改密码界面,暴破验证码使Token生效,就可以实现任意密码重置漏洞 。

漏洞往往就隐藏在一些细节里面,在渗透测试中,去分析请求中的每个参数,并注意检查页面返回的源代码。比如,当参数拼接到SQL中执行,就存在SQL注入,当参数直接输出到前端,就存在XSS跨站脚本。

似乎很难再找到人去分享,发现一种新的漏洞利用场景的喜悦。

----致那些曾经一起玩渗透的朋友。

本文分享自微信公众号 - Bypass(Bypass--)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏闻道于事

使用SQL逆向生成PDM文件

10830
来自专栏丑胖侠

centos7 MongoDB安装

根据需要修改bindip地址,可监听127.0.0.1或内网地址。如果需要绑定多个ip,可采用如下格式:

48940
来自专栏武军超python专栏

SQL注入和XSS攻击

SQL注入: 所谓SQL注入,就是通过把SQL命令插入到提交的Web表单或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,导致数据库中...

28120
来自专栏邢成的架构笔记

如何保证缓存与数据库的双写一致性?

只要用缓存,就可能会涉及到缓存与数据库双存储双写,你只要是双写,就一定会有数据一致性的问题

27030
来自专栏服务器安全专线

Linux下手动编译安装PHP扩展的例子分享

这篇文章主要介绍了Linux下手动编译安装PHP扩展的例子分享,本文以PDO_MYSQL为例,讲解手动编译安装PHP扩展的方法,需要的朋友可以参考下

11800
来自专栏服务器安全专线

服务器攻防站 网站后门防范及安全配置

虽然说亡羊补牢可以将木马后门造成的损失降至最低,但最好的方法显然是防患于未然。1、后门防范基本功

17000
来自专栏云服务器999+

如何快速上手腾讯云?】云数据库 MySQL快速入门教程(二)

小编为大家带来一波新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。

21130
来自专栏有脑子的搬砖工

POJO、JavaBen、Entity的区别

POJO (Plain Ordinary Java Object)简单的Java对象,实际就是普通JavaBeans,是为了避免和EJB混淆所创造的简称。其中...

14220
来自专栏java小白

mysql查询结果输出到文件

在mysql命令行环境下执行: sql语句+INTO OUTFILE +文件路径/文件名 +编码方式(可选)

29020
来自专栏SpringCloud专栏

如何设置数据库连接池大小

基本上来说,大部分项目都需要跟数据库做交互,那么,数据库连接池的大小设置成多大合适呢?

34920

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励