heapdumpとは
Node.jsのheapdump
とは、アプリで使っているメモリの中身を丸ごと記録するスナップショットの事を言います。
- ログインセッション
- 環境変数
- 一時保存されていたフラグやトークン
などが記録されています。
本来はメモリリークの解析やパフォーマンスの問題を分析・改善するために使用するAPIです。
メモリ使用率がどんどん増えていってシステムの応答が遅くなったりエラーを吐いたりする原因を探ったりする。
ただ、これが外部から不正にアクセスできる状況だと大問題です。
Swaggerとは
APIの仕様を機械的に定義・可視化できるツール群です。
- APIエンドポイントの一覧表示
- パラメータとレスポンスの説明
- 実行ボタン(Try it out)
といった機能を提供し、Webブラウザ上でAPIの「取扱説明書+テスト」が可能になります。
この中にheapdump
があるかもしれません。
Swaggerにアクセス
慌てる必要はありません。そもそもwebアプリケーションの脆弱性を見つけるには、様々なアプローチをする必要があります。
入力画面があれば以下のような攻撃手法があります。
ディレクトリトラバーサルなどもあります
どれも手掛かりがなければ、とりあえずソースコードを読みます。
gobusterで使用したwordlists以外のディレクトリを探す手がかりがある可能性があります。
<img src="/img/picoctf-logo-og.png" alt="User Avatar" class="w-8 h-8 rounded-full">
例えば、上記のコードからはhttp://example.com/img/picoctf-logo-og.png
があるんだなと理解することができます。
<a href="/api-docs" class="text-blue-600 hover:underline">#API Documentation</a>
上記のコードから、/api-docs/
があり、API関係であることがわかります。
http://example.com/api-docs/
にアクセスしてみると、APIが管理されているページに飛びます。
もしかすると、/headdump
が一覧の中にあるかもしれません。
heapdump
アクセスし、記録を見ると機密情報が存在するかもしれません。
# まとめ
heapdumpを探す方法を記載しました。
悪用禁止です。