450 文字
2 分
Instagram Storyのメタデータを取得する
2024-11-26
タグなし

Burp Suiteを使ってInstagramの通信を観測していたところ、たまたま面白いものが見つかったので共有します。

手順#

1.ストーリーを取得する#

Burp SuiteのProxyを起動してからクライアントからストーリーを表示します。
ストーリーを表示する前にHTTP historyをclearしてから押すと後で探しやすくなります。

他にBurpを使わなくてもブラウザの開発者ツールのネットワークという項目からも同じことができます。
Storyを閲覧した後に開発者ツール -> ネットワーク -> 以下の特徴の通信を見つける

メッソド  : POST
ファイル名 : query
タイプ   : json

2.GraphQLからデータを取得する#

HTTP historyで得た情報からこのような/graphql/queryに注目します。 MEME typeがJSONであるのが特徴です。

Response HeaderにはX-FB-Friendly-Nameという項目があります。これを見ることでjsonの中身が何なのか何となく分かります。

X-FB-Friendly-Name機能内容(予測)
PolarisStoriesV3ReelPageGalleryQueryストーリーのタイムライン
PolarisStoriesV3SeenMutation不明
PolarisStoriesV3ReelPageGalleryPaginationQuery特定のユーザのストーリー情報
PolarisStoriesV3AdsPoolQuery広告関連
PolarisAPICheckNewFeedPostsExistQuery名前からして、新しい投稿をチェックする動的処理?
PolarisStoriesV3HighlightsPageQuery特定のユーザのハイライト情報

メタ情報には12種類の画像サイズや、ストーリーに付けたステッカー情報を見ることができます。

余談#

以前まではaccessibility_captionという項目で画像に写っている物や文字を自動的に説明する文章が生成されていました。これらは内部で垢BAN対策に用いられているのかなと考察していましたが、今回調べたらnullに変わっていたのでなくなったのかもしれません。