任意用户密码重置的十种姿势=====>学习笔记!
原学习视频链接:https://www.butian.net/School/content?id=214%E2%80%98
1.验证码不失效
原因:获取的验证码缺少时间限制,仅判断验证码是否不正确而未判断验证码是否过期
测试方式:可以爆破枚举找到验证码完成验证
2.验证码直接返回在数据包中
原因:输入了手机号后点击获取验证码,验证码在客户端生成,并直接返回在response中
测试方法:输入目标手机号,观察返回包中的内容。这种操作一般会在开发测试阶段产生。
3.验证码未绑定用户
原因:输入手机号和验证码重置密码时,仅判断验证码是否正确,没有对验证码与手机号匹配做验证
测试:先使用自己的手机号获取一个正确的验证码,在下一步中修改密码前抓包修改手机号为目标手机号
这里有一个扩展,用户名(用户特征的信息)与验证码没有绑定,替换原理都是一样的,比如替换用户名,替换加密后的用户名,毕竟这里只是一个理论知识,有实际操作支撑时再进行拓展。
4.修改接受的手机或邮箱
原因:用户名,手机号,验证码三者没有绑定验证,仅判断了手机号和验证码的匹配正确,这个漏洞我想,肯定是开发。
想偷一下下懒。
测试:重置时修改接收验证码的手机号
5.本地验证的绕过
原因:这个本地验证听起来很高大上啊,实际上就是一个在本地修改一个验证结果。比如说验证成功返回0,失败返回1,如果在本地可以抓包修改这个值,那么就判定这个漏洞是存在的。
客户端在本地进行验证码是否正确的判断,且该判断结构也可以本地修改,最终欺骗客户端。
测试:重置目标用户,输入错误的验证码,修改返回包中的验证结果flag值。
6.跳过验证步骤
原因:修改密码的过程中,如果存在多个页面,比如说,输入用户名(url1)点击下一步======>输入接收验证码的手机号或邮箱(url2)======>修改密码的页面(url3),正常操作是验证成功后才会由url2-->url3,所以可以尝试跳过这一验证过程,直接url1----->url3,这个实现前提是你已经正确的按照逻辑实现了并记录下操作的url。
测试:先测试一边正常流程并记录url,再对于目标用户重置。
7.未校验用户字段的值
原因:在重置流程中,只对手机号和验证码做了校验,没有对后面设置新密码的用户身份做判断,导致最后一步修改用户身份来重置别人呢的密码
测试:在通过验证后,修改设置密码流程时,抓包修改数据包里的用户信息。
8.修改密码处id可替换
原因:修改密码时,没有对原密码进行判断,且根据ID的值来修改对应用户的密码,如:update user set password = "qwe1234" where id = '1',可能在验证时会发送多个数据进行验证,但修改操作,即update操作不受其他判断结果影响,所以修改id可以直接起作用。
9.cookie值的替换
原因:重置密码时仅判断cookie是否存在,没有判断该cookie是否通过之前的验证过程,导致替换cookie可重置密码。
测试:抓取数据包中的cookie值,替换重置密码数据包中的cookie值,达到目的。
10.修改信息时替换字段值,特指隐藏参数loginid
原因:在执行修改信息的sql语句时,用户的密码也当作字段执行了,且是根据隐藏参数loginid,修改该参数,就可以修改他人的用户密码。
测试:修改个人资料时,抓取数据包,修改数据包的参数和队友的值,替换隐藏参数,成功后被替换的账户密码与自己的密码一致。隐藏参数可以在页面的源代码中找到。
在实际利用中,需要知道loginid与用户名或其他用户标识的对应值,但视频中因为是上帝视角,没有提及,所以在实际情况中,要结合其他方式利用。
任意用户密码重置的十种姿势=====>学习笔记!的更多相关文章
- zzcms8.2#任意用户密码重置#del.php时间盲注#复现
00x0 引言 早上起来,发现seebug更新了一批新的洞, 发现zzcms8.2这个洞好多人在挖,于是我就默默的踏上了复现之路(要不是点进去要买详情,我何必这么折腾~) 环境:zzcms8.2(产品 ...
- 代码审计-DedeCMS-V5.7前台任意用户密码重置
0x01 漏洞影响 该漏洞允许攻击者修改任意前台用户密码. 0x02 漏洞利用条件 1,开启会员模块 2,攻击者拥有一个正常的会员账号 3,目标没有设置安全问题 0x03 漏洞分析 漏洞文件:/mem ...
- PHPCMS v9.6.0 任意用户密码重置
参考来源:http://wooyun.jozxing.cc/static/bugs/wooyun-2016-0173130.html 他分析的好像不对.我用我的在分析一次. 先来看poc: /inde ...
- Dbshop v1.3任意用户密码重置漏洞
0x00 前言 年也过的差不多了,各自也都回到岗位忙碌起来了,新的一年祝大家诸事顺利,洞洞高危!好了进入正题 0x01 漏洞简介 本次主要写个简单的逻辑漏洞!然后抛个Message 内置高危. 1.找 ...
- PJzhang:任意密码重置的常规姿势
猫宁!!! 之前在360补天看过carry_your分享的46分钟短视频“任意用户密码重置的10种姿势”. 在京东SRC安全小课堂第89期,也有一篇他的文章:web漏洞之逻辑漏洞挖掘.内容朴实无华. ...
- ZZCMS8.2 用户密码重置漏洞
前言 一个找回密码处的逻辑漏洞, 还是有点意思的. 正文 首先是定位找回密码功能对应的代码位置,使用找回密码的功能,然后抓包即可 下面去 getpassword.php 里面看看, 首先包含了一些文件 ...
- 【漏洞分析】dedecms有前提前台任意用户密码修改
0x00 前言 早上浏览sec-news,发现锦行信息安全发布了一篇文章<[漏洞分析] 织梦前台任意用户密码修改>,看完之后就想着自己复现一下. 该漏洞的精髓是php的弱类型比较,'0. ...
- Linux root用户密码重置,远程登陆,文件基本属性
Linux root用户密码重置,远程登陆,文件基本属性 忘记Linux系统的root密码,linux系统忘记root密码的情况该怎么办呢?重新安装系统吗?当然不用!进入单用户模式更改一下root密码 ...
- PHPCMS v9.5.8-设计缺陷可重置前台任意用户密码
验证.参考漏洞:http://wooyun.jozxing.cc/static/bugs/wooyun-2015-0152291.html 漏洞出现在/phpcms/modules/member/in ...
随机推荐
- POJ 1062 昂贵的聘礼 最短路+超级源点
Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为聘礼才答应把女儿嫁给他.探险家拿不出这么多金币,便请求酋长降低 ...
- 使用TensorFlow v2张量的一个简单的“hello world”示例
使用TensorFlow v2张量的一个简单的"hello world"示例 import tensorflow as tf # 创建一个张量 hello = tf.constan ...
- 在EF中使用SQL执行简单高效的增删查操作
随着平台数据的积累,对于数据访问的速度要求愈来愈高.优化后台访问性能,将是之后的一个重点任务. 但是,后台在项目开发初期采用的是Abp(Lite DDD)框架,集成EnityFramework.因为之 ...
- 面试中常问的五种IO模型和BIO,NIO,AIO
一,五种IO模型: 一个IO操作可以分为两个步骤:发起IO请求和实际的IO操作例如:1.操作系统的一次写操作分为两步:第一步,将数据从用户空间拷贝到系统空间:第二步,从系统空间往网卡写.2.一次读操作 ...
- pywinauto之PC端windows自动化测试
pywinauto是一个用纯Python编写的GUI自动化库,并为Windows GUI精心开发.最简单的是,它允许您将鼠标和键盘操作发送到Windows和Linux上的对话框和控件,而到目前为止,仅 ...
- Go 开发环境搭建和代码调试
写这篇笔记的目的,主要是分享我在Go学习中遇到的坑.让后面的学习者能否参考有用的经验. 其中有一些小技巧,对初学者来说,可能会大大节约填坑的时间. 比如如何设置vscode的Go调试器,Go的语法高亮 ...
- 1089 Insert or Merge (25分)
According to Wikipedia: Insertion sort iterates, consuming one input element each repetition, and gr ...
- 为应用程序池“XXX”提供服务的进程在与 Windows Process Activation Service 通信时出现严重错误。该进程 ID 为“XXXX”。数据字段包含错误号。 改进查找流程
原文链接:https://www.cnblogs.com/qidian10/p/6028784.html 为防止原作者删除,留作解决方法备份 ---------------------------- ...
- Linux 用户管理篇(一)
查看当前在线的用户 who 切换不同用户工作界面 ctrl + alt + [F1 - F6] 切换图形界面 ctrl + alt + F7 注消用户 exit ...
- Linux 下如何隐藏自己不被发现?
可能在某些情况下,自己运行的程序不想或者不方便被其他人看到,就需要隐藏运行的进程.或者某些攻击者采用了本文介绍的隐藏技术,也可以让大家看到如何进行对抗. 隐藏有两种方法: kernel 层面,不对用户 ...