任意用户密码重置的10种常见姿势

来源:
任意用户密码重置的10种常见姿势
整理课件资料

1 验证码不失效

  • 造成原因:找回密码的时候获取的验
    证码缺少时间限制仅值判断了验证码是
    够正确未判断验证码是否过期
  • 测试方法:通过枚举找到真正的验证
    码输入验证码完成验证
    -案例
    输入目标手机号,获取验证码随意输入验证码1234点击下一步,拦截数据包
image.png
POST /Account/CheckYQCode HTTP/1.1
Host: www.xxxx.cn
User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0
Accept: */*
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Content-Type: application/x-www-form-urlencoded; charset=UTF-8
X-Requested-With: XMLHttpRequest
http://www.xxxx.cn/userCenter/toForgetPsdPage.html?mobile=
Content-Length: 11
Cookie: ASP.NET_SessionId=30jfruwn22h2xng3ahhzo2jx
Connection: close YQCode=1234

得到正确的验证码是1059然后到网站上输入验证码跳转到输入新密码的页面完成重置密码

image.png

2验证码直接返回

  • 1.输入目标手机号,
    点击获取验证码
  • 2.验证码直接返回
    1269,输入验证
    码跳转到重置页面


3.验证码未绑定用户

  • 造成原因:输入手机号和验证码进行重置密码的时候,仅对验证码是够正确进行了判断,未对该验证码是否与手机号匹配做验证。
  • 测试方法:在提交手机号和验证码的时候,替换手机号为他人手机号进行测试,成功通过验证并重置他人密码。
image.png
image.png

首先使用自己的手机号接收验证码然后输入自己手机号接收到的验证码,点击下一步并拦截数据包最后替换数据包里的目标手机号,然后发包

image.png

这个案例也是验证码未绑定用户延伸一下,有时候测试会碰到这种,我们发现用户名被加密了,我们又无法得知加密算法,怎么办?大部分这种都不需要知道加密算法,比如这个例子,得到的liuyy的加密后的值是80e688602c4b11e66320c421e3b71ef2,那么我们就可以直接用这个keycode了

image.png

步骤是一样的,输入我们的用户名和收到的验证码,然后把我们的keycode替换为liuyy的那个keycode,这样就可以重置liuyy的密码了。(漏洞原因还是是判断了验证码是否正确,而没有判断该验证码是否跟该用户匹配。)

4.修改接收的手机或邮箱

  • 造成原因:用户名、手机号、验证码三者没有统一进行验证,仅判断了三者中的手机号和验证是否匹配和正确,如果正确则判断成功并进入下一流程。
  • 测试方法:输入用户名获取验证码,修改接收验证码的手机号为自己的号码,自己手机成功接收验证码,提交到网站进行验证,验证成功并进入下一流程。
image.png
image.png

点击找回密码,首先我们输入zhangwei,然后点击获取验证码,这个时候把手机号改为我们自己的号码,输入我们自己的号码和验证码,成功跳到重置密码的页面,密码重置成功

5本地验证的绕过

  • 造成原因:客户端在本地进行验证码是否正确的判断,而该判断结果也可以在本地修改,最终导致欺骗客户端,误以为我们已经输入了正确的验证码。
  • 测试方法:重置目标用户,输入错误验证码,修改返回包,把错误改为正确,即可绕过验证步骤,最终重置用户密码。
image.png
image.png

输入手机号13888888888,输入验证码123456,验证码错误的时候,返回包返回的是0

image.png

这里我们所做的就是把0修改为1,可以借工具修改返回包,我们把0改为1,然后查看页面,成功跳转到修改密码的页面,输入新密码即可修改用户13888888888的密码

6跳过验证步骤

  • 造成原因:对修改密码的步骤,没有做校验,导致可以直接输入最终修改密码的网址,直接跳转到该页面,然后输入新密码达到重置密码的目的。
  • 测试方法:首先使用自己的账号走一次流程,获取每个步骤的页面链接,然后记录页面3对应的输入新密码的链接,重置他人用户时,获取验证码后,直接输入页面3链接到新密码的界面,输入密码重置成功。
image.png
image.png
image.png

使用账户wangshuai,点击获取验证码,然后补齐下面的链接https://xxx/page/login/veifyAccess.html?username=wangshuai&email=wangshuai@xxx.com.cn,访问后即可直接重置该用户的密码

7未校验用户字段的值

  • 造成原因:在整个重置密码的流程中,只对验证码和手机号做了校验,未对后面设置新密码的用户身份做判断,导致在最后一步通过修改用户身份来重置他人的密码。
  • 测试方法:使用自己的手机号走流程,在走到最后一个设置密码的流程时,修改数据包里的用户信息。
image.png

8修改密码处id可替换

  • 造成原因:修改密码的时候,没有对原密码进行判断,且根据id的值来修改用户的密码,类似的SQL语句:update user set password="qwer1234" where id = ‘1’修改数据包里的id的值,即可修改他人密码。
  • 测试方法:修改自己用户密码,抓取数据包,替换数据包中用户对应的id值,即可修改他人的密码。
image.png
image.png

点击立即提交,得到右边的数据包,测试发现修改id为5,就可以把对应的用户密码修改为123456,没有对用户的原始密码判断,也没有判断id是否属于该用户。8.修改密码处id可替换

image.png

成功修改id为5的用户密码为123456,而且可以通过遍历id修改所有用户的密码

9.cookie值的替换

  • 造成原因:重置密码走到最后一步的时候仅判断唯一的用户标识cookie是否存在,并没有判断该cookie有没有通过之前重置密码过程的验证,导致可替换cookie重置他人用户密码。(cookie可指定用户获取)
  • 测试方法:重置自己用户密码到达最后阶段,抓到数据包,并在第一阶段重新获取目标用户cookie,替换cookie到我们抓取的数据包中,发包测试。
image.png
image.png
image.png

到第一步去获取验证码的时候,点击下一页,可以获取到该用户wangshuai对应的内容Cookie: JSESSIONID=E1AC27A7302C03C9432DE2254B99311A

10.修改信息时替换字段值

  • 造成原因:在执行修改信息的sql语句的时候,用户的密码也当作字段执行了,而且是根据隐藏参数loginid来执行的,这样就导致修改隐藏参数loginid的值,就可以修改他人的用户密码。
  • 测试方法:修改个人资料的时候,抓取数据包,然后来修改数据包的参数和对应的值,参数名一般可以在其他地方找到,替换隐藏参数即可修改他人的密码等信息。
image.png
image.png
image.png

view-source:https://www.xxx.com/ua/employee/forUpdate.do查看下这个页面的源代码,找到了一个参数loginId,这个参数是对应用户身份的而我们发现 上面的数据包里没有这个参数,那么我们是否可以自己添加上去呢?

image.png
image.png

添加字段loginId,并且把值修改为他人的用户,发包返回修改成功这样我们就成功的把用户871XXXXXX的密码改为了跟我们密码相同的值

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,911评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,014评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 142,129评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,283评论 1 264
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,159评论 4 357
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,161评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,565评论 3 382
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,251评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,531评论 1 292
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,619评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,383评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,255评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,624评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,916评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,199评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,553评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,756评论 2 335

推荐阅读更多精彩内容

  • 吃货地图产品需求文档 V1.0-2015/03/30 1概述 1.1产品概述及目标 概述:“吃货地图”是一款基于i...
    michaelshan阅读 5,812评论 1 46
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,497评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,085评论 25 707
  • 一个感动了半个世纪的童话——写给孩子,也写给大人 美国当代大作家厄普代克把怀特的三部童话归于儿童文学经典作品之列,...
    非法入境阅读 572评论 2 8