逻辑漏洞之密码找回漏洞(semcms)「建议收藏」

逻辑漏洞之密码找回漏洞(semcms)「建议收藏」目录什么是密码找回漏洞一般流程可能产生该漏洞的情况脑洞图1.用户凭证暴力破解2.返回凭证3.邮箱弱token4.用户凭证有效性5.重新绑定6.服务器验证7.用户身份验证8.找回步骤9.本地验证10.注入11.Token生成12.注册覆盖13.session覆盖演示暴破验证码找回密码更改id号修改admin密码靶场cms下载什么是密码找回漏洞利用漏洞修改他人帐号密码,甚至修改管理员的密码。一般流程1首先尝试正常找回密码流程,选择不同的找回方式,记录所有数据包2分析数据包,找到敏感部分3

大家好,又见面了,我是你们的朋友全栈君。

什么是密码找回漏洞

利用漏洞修改他人帐号密码,甚至修改管理员的密码。

一般流程

1 首先尝试正常找回密码流程,选择不同的找回方式,记录所有数据包
2 分析数据包,找到敏感部分
3 分析后台找回机制所采用的验证手段
4 修改数据包验证推测

可能产生该漏洞的情况

1、验证码爆破的,对验证码有效期和请求次数没有进行限制;

2、token验证之类的,直接将验证内容返回给用户;

3、找回密码功能的进行身份验证内容未加密或者加密算法较弱,容易被猜解;

4、对用户的身份验证在前端进行,导致验证被抓包绕过;

5、在最后一步修改密码的动作时,没有校验帐号是否通过了验证、短信与手机号是否对应。

脑洞图

在这里插入图片描述

1.用户凭证暴力破解

1.1 密码找回的凭证太弱,如只需要填入一个四位或者六位的纯数字,就可以重置密码,导致可以暴力破解。

2.返回凭证

2.1 url返回验证码及token(找回密码凭证发到邮箱中,url中包含用户信息以及凭证,但是这个凭证可以重置任何用户)

2.2 密码找回凭证在页面中(通过密保问题找回密码、找回密码的答案在网页的源代码中)

2.3 返回短信验证码

3.邮箱弱token

3.1 时间戳的md5(Unix时间戳)
3.2 用户名
3.3 服务器时间

4.用户凭证有效性

4.1 短信验证码
4.2 邮箱token
4.3 重置密码token

5.重新绑定

5.1 手机绑定(任意用户绑上自己可控的安全手机,就可以重置任意人的手机号码了)
5.2 邮箱绑定

6.服务器验证

6.1 最终提交步骤
6.2 服务器验证可控内容(在最后重置密码处跟随一个用户ID,改成其他用户ID,即可把其他用户改成你刚刚设置的密码)
6.3 服务器验证逻辑为空

7.用户身份验证

7.1 账号与手机号码的绑定
7.2 账号与邮箱账号的绑定

8.找回步骤

8.1 跳过验证步骤、找回方式,直接到设置新密码页面

9.本地验证

9.1 在本地验证服务器的返回信息,确定是否执行重置密码,但是其返回的信息是可控的内容,或者可以得到的内容(密码找回凭证在客户端获取,在密码找回时注意抓包查看所有url返回响应等,看是否有最终的凭证出现,这样就可以绕过手机或者安全邮箱了)
9.2 发送短信等验证信息的动作在本地进行,可以通过修改返回包进行控制

10.注入

10.1 在找回密码出存在注入漏洞

11.Token生成

11.1 Token生成可控

12.注册覆盖

12.1 注册重复的用户名(比如注册A,返回用户已存在,把已存在的状态修改为可注册,填写信息提交注册,就可以覆盖A账号)

13.session覆盖

参考资料来源 https://bbs.ichunqiu.com/thread-18920-1-1.html

演示

暴破验证码找回密码

首先,要知道管理员的邮箱,还有后台路径
在这里插入图片描述在这里插入图片描述
初始密码是1,登录成功,说明网站配置没问题

现在开始爆破之路。
退出登录,进入后台,选择找回密码
在这里插入图片描述
在这里插入图片描述

确认找回
这里没有配置邮箱服务,所以报错,实际网站管理员是会开启邮箱服务的
在这里插入图片描述

这里的绕过payload:?type=ok&umail=yc@qq.com,yc@qq.com 是管理员的邮箱。实际操作中,可以从网页上管理员的联系方式中找到管理员的邮箱信息。

在这里插入图片描述

这里密码随便输,认证码也随便填一个4位数(因为此cms的认证码是个由数字组成的四位数)
在这里插入图片描述

准备抓包,然后点击确认找回
右击鼠标,发送给测试器(或者直接ctrl+l)

在这里插入图片描述

进入测试器,位置,清除所有负载

在这里插入图片描述

然后选中1111,也就是邮箱认证码,添加负载
在这里插入图片描述

选中有效载荷,类型选择数值,从0000开始,到9999结束,每次递增1
在这里插入图片描述

进入选项,这里线程数根据实际要求来。比如一个6位数的验证码,1分钟后就失效了,线程就要高——线程不能太高了,不然电脑容易崩。如果只有4位数,才10000次请求,或者验证码10分钟才失效,线程就可以低一点

在这里插入图片描述

然后开始攻击
在这里插入图片描述

发现1返回的长度和其他的都不一样,那就说明验证码可能是0001

回到找回密码的界面,将认证码改为0001,确认找回
在这里插入图片描述

提示操作成功
在这里插入图片描述
使用更改过的密码登录,登录成功

在这里插入图片描述

更改id号修改admin密码

先登录admin的初始密码是admin

在这里插入图片描述
在这里插入图片描述

然后退出,用普通用户登录,账号aaaaa,密码asdfsadf。登录成功后选择修改密码。

旧密码随便填,因为在这里旧密码就是个摆设:系统监测到你已经登录,就默认你知道旧密码,不会再验证旧密码。

这里我设置新密码是123456

在这里插入图片描述
抓包,将uid改为1(admin的uid值为1;aaaaa的uid为2 。这里改成1是为看修改admin的密码,当然也可以换成其他的,比如3,4,5,6,7……就会修改对应uid账号的密码)
在这里插入图片描述

改完之后把包放了
显示ok,说明修改密码成功

在这里插入图片描述
使用账号admin,密码123456登录成功。
admin原来的初始密码admin已经失效。aaaaa的密码也没有修改,仍然是asdfsadf
在这里插入图片描述

靶场cms下载

semcms下载链接(建议安装在根目录)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132285.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 仿照博客园搜索功能 找找看的实现 发现问题 杂谈

    仿照博客园搜索功能 找找看的实现 发现问题 杂谈

    2021年8月21日
    63
  • 什么是Web Service(SOAP)?

    什么是Web Service(SOAP)?SOAP请求(SimpleObjectAccessProtocol,简单对象访问协议)是HTTPPOST的一个专用版本,遵循一种特殊的XML消息格式,Content-type设置为:text/xml,任何数据都可以XML化。SOAP:简单对象访问协议。SOAP是一种轻量的,简单的,基于XML的协议,它被设计成在web上交换结构化的和固化的信息。SOAP可以和现存的许多因特网协议和格式结合…

    2022年7月24日
    12
  • ssh用私钥生成公钥[通俗易懂]

    ssh用私钥生成公钥

    2022年2月19日
    64
  • realsense深度图像保存方法

    realsense深度图像保存方法一般使用realsense时会保存视频序列,当保存深度图像时,需要注意保存的图像矩阵的格式,不然可能造成深度值的丢失。在众多图像库中,一般会使用opencv中的imwrite()函数进行深度图像的保存。一般深度图像中深度值的单位是mm,因此一般使用np.uint16作为最终数据格式保存。例子:importnumpyasnpimportcv2deffun1(…

    2022年4月25日
    33
  • Java类加载机制与Tomcat类加载器架构

    Java类加载机制与Tomcat类加载器架构Java类加载机制类加载器虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现,以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块称为“类加载器”。类加载器可以说是Java语言的一项创新,也是Java语言流行的重要原因之一,它最初是为了满足JavaApplet的需求而开发出来的。虽然目前JavaA

    2022年5月20日
    42
  • 怎么创建java文件_如何创建java文件

    怎么创建java文件_如何创建java文件如何创建java文件?(1)开启Eclipse程序后,首先开始Eclipse中JAVA项目的新建,在上方的选项栏中选择“File——New——JavaProject”,系统会弹出新建项目的属性设置。(2)在JavaProject的设置页面,主要设置project的项目名称设置,以及路径设置,“JavaProject”的路径,一般是默认路径,取消“Usedefaultlocation”的勾…

    2022年6月18日
    28

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号