漏洞挖掘丨敏感信息泄露+IDOR+密码确认绕过=账户劫持

漏洞挖掘丨敏感信息泄露+IDOR+密码确认绕过=账户劫持获得账户auth_token目标网站是一个工作招聘门户网站,测试保密原因暂且称其为redacted.com。一开始,我登录以应聘者身份去测试CSRF或某些存储型XSS,但没什么发现。接下来,我就想到了越权测试(IDOR),为此,我又创建了另外一个账号,两个账号一起可以测试如注册、登录、忘记密码等功能点的越权可能。创建账号前我开启了流量抓包想看看具体服务端的响应,注册开始时,网站会跳出一个提示,…

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

获得账户auth_token
目标网站是一个工作招聘门户网站,测试保密原因暂且称其为redacted.com。一开始,我登录以应聘者身份去测试CSRF或某些存储型XSS,但没什么发现。接下来,我就想到了越权测试(IDOR),为此,我又创建了另外一个账号,两个账号一起可以测试如注册、登录、忘记密码等功能点的越权可能。

创建账号前我开启了流量抓包想看看具体服务端的响应,注册开始时,网站会跳出一个提示,输入注册邮箱检查是否是注册用户。在这里,我随便输入了一个未注册过的邮箱,服务端竟然有了异常响应,如下:

在这里插入图片描述

其中包含了auth_token的信息:

“redirect_url”:“/?auth_token=_v2_8dsf8as




df12ad4f5a4sdf56as1df65asdf56sd4ff&contact_id=11cb26ae&e 




xpire=1152315525”

账户劫持(Account Takeover)
哦,这就有点意思了,于是,我把这个邮箱更改为我另一个与注册账号对应的邮箱:
[外链图片转存失败(img-lm7Xgy2g-1567064367787)(https://image.3001.net/images/20190723/1563874931_5d36d673dfed4.jpeg)]就这样!也就是说,通过“/candidate/create”这个路径我就能获取网站注册用户的auth_token信息了。现在我只需要一个利用它的点就行,接着,我在 burpsuite的代理历史中查看有哪些请求用到了auth_token,哦,很简单,就是这个:

https://redacted.com/?auth_token=d8fs4ds8fdsf84dsf8dsfads8fasd6f84dsf684dsafccv68f4&contact_id=52z1d5d4&expire=1152315525

我开启了浏览器隐身模式访问了上述链接,BOOM,就这么简单地登录到了受害者账户(另一测试账户)中去了,完美的账户劫持。但当我查看受害者账户中的个人资料想更改密码或注册邮箱时,却无法看到个人资料信息,而且跳出来一个密码确认输入框(仔细观察,其中包含Forgot Password忘记密码功能):

[外链图片转存失败(img-RVm6ViEg-1567064402280)(https://image.3001.net/images/20190723/1563875011_5d36d6c3e5718.jpeg)]

该死,如何来绕过它呢?

绕过密码确认限制
先来一种猜想:要是我把受害都注册邮箱更改为我自己的邮箱,然后利用忘记密码功能发送密码更改请求,那我的邮箱会不会收到密码重置链接呢?来试试看。

于是,我在我自己的测试账户中找到了注册邮箱更改路径为 ‘/api/profile’,该路径下,通过类似{“email_address”:“attackers@gmail.com”}`的JSON格式PATCH请求,就能实现注册邮箱更改。

接下来,我在受害者账户登录cookie下,以这种方式在“https://redacted.com/api/profile”下,发送了JSON格式的PATCH请求-‘{“email_address”:“mynewmail@gmail.com”}’ :

04.jpeg响应成功显示请求有效,那么之后,我只需登录受害者账户环境,点击个人资料查看,在跳出的密码确认框那点击忘记密码(Forgot Password),那么我自己的邮箱就能收到服务端发来的一封密码重置链接邮件了。

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

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

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


相关推荐

  • 什么是RIA 技术?

    什么是RIA 技术?RIA是什么东西,这是真么技术。。。我写这篇博客中,就带着这么两个问题开始收集资料RIA(RichInterfaceApplications)富界面应用,俗称胖客户端.RIA的优势RIA具有的

    2022年7月4日
    23
  • 【Java】爬虫,看完还爬不下来打我电话[通俗易懂]

    前言防砸声明:此文仅仅能保证入门,不保证商业生产。最终实现效果:爬虫简介:引用钱洋博士课程的部分内容(有删改):网络爬虫技术,有效的获取网络数据资源的重要方式。简单的理解,比如您对百度贴吧的一个帖子内容特别感兴趣,而帖子的回复却有1000多页,这时采用逐条复制的方法便不可行。而采用网络爬虫便可以很轻松地采集到该帖子下的所有内容。网络爬虫的作用,我总结为以下几点:舆情分析:企业或…

    2022年4月13日
    98
  • coco数据集语义分割_实例分割模型

    coco数据集语义分割_实例分割模型COCO数据集格式COCO的全称是CommonObjectsinCOntext,是微软团队提供的一个可以用来进行图像识别的数据集,用于进行物体检测、分割、关键点检测、添加字幕等。JSON文件的基本格式,以实例分割为例,主要有五个部分:info、licenses、images、annotations、categories{“info”:info,”licenses”:[license],”images”:[image],”annotatio

    2022年8月23日
    12
  • 单级倒立摆数学模型_倒立摆系统建模

    单级倒立摆数学模型_倒立摆系统建模首先建立单摆的动力学模型,使用simulink搭建控制框图。然后将极点配置状态反馈和串级PD反馈应用于系统的摆杆竖直倒立稳定和平移支座位移稳定进行控制并对比了两种方法的优劣。

    2022年8月18日
    5
  • vscode配置java环境变量_配置Java

    vscode配置java环境变量_配置JavaVSCode软件之配置JAVA环境

    2022年10月1日
    2
  • switch 中 break 和 continue 的区别[通俗易懂]

    switch 中 break 和 continue 的区别[通俗易懂]1、break用来退出switch,continue本身是不能用在switch里的,他必须结合循环来用,表示跳过本次循环2、switch的case语句最后如果没有加break/continue,则程序会一直往后执行,可以借鉴goto跳转到位置,其实switch本身可以看作某种形式的跳转,而C语言中本身是不执行:的那条语句的,例如,如果程序中出现一条语句wtch…

    2022年6月2日
    91

发表回复

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

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