0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Swagger UIで表示されるheapdump APIを悪用

Posted at

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を探す方法を記載しました。
悪用禁止です。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?