Werkzeug / Flask Debug
Last updated
Last updated
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)
あなたのウェブアプリ、ネットワーク、クラウドに対するハッカーの視点を得る
実際のビジネスに影響を与える重大で悪用可能な脆弱性を見つけて報告します。 20以上のカスタムツールを使用して攻撃面をマッピングし、特権を昇格させるセキュリティ問題を見つけ、自動化されたエクスプロイトを使用して重要な証拠を収集し、あなたの努力を説得力のある報告書に変えます。
デバッグがアクティブな場合、/console
にアクセスしてRCEを取得することを試みることができます。
インターネット上には、これやmetasploitのものなど、いくつかのエクスプロイトがあります。
場合によっては、/console
エンドポイントがピンで保護されることがあります。ファイルトラバーサルの脆弱性がある場合、そのピンを生成するために必要なすべての情報を漏洩させることができます。
アプリでデバッグエラーページを強制的に表示させて、これを確認します:
A message regarding the "console locked" scenario is encountered when attempting to access Werkzeug's debug interface, indicating a requirement for a PIN to unlock the console. The suggestion is made to exploit the console PIN by analyzing the PIN generation algorithm in Werkzeug’s debug initialization file (__init__.py
). The PIN generation mechanism can be studied from the Werkzeug source code repository, though it is advised to procure the actual server code via a file traversal vulnerability due to potential version discrepancies.
コンソールPINを悪用するには、2つの変数セット、probably_public_bits
と private_bits
が必要です:
probably_public_bits
username
: Flaskセッションを開始したユーザーを指します。
modname
: 通常は flask.app
と指定されます。
getattr(app, '__name__', getattr(app.__class__, '__name__'))
: 一般的に Flask に解決されます。
getattr(mod, '__file__', None)
: Flaskディレクトリ内の app.py
へのフルパスを表します(例: /usr/local/lib/python3.5/dist-packages/flask/app.py
)。app.py
が適用できない場合は、app.pyc
を試してください。
private_bits
uuid.getnode()
: 現在のマシンのMACアドレスを取得し、str(uuid.getnode())
で10進数形式に変換します。
サーバーのMACアドレスを特定するには、アプリで使用されているアクティブなネットワークインターフェース(例: ens3
)を特定する必要があります。不明な場合は、**/proc/net/arp
を漏洩させてデバイスIDを見つけ、次に /sys/class/net/<device id>/address
からMACアドレスを抽出します。
16進数のMACアドレスを10進数に変換する方法は以下の通りです:
get_machine_id()
: /etc/machine-id
または /proc/sys/kernel/random/boot_id
からのデータを、最後のスラッシュ(/
)の後の /proc/self/cgroup
の最初の行と連結します。
AWSハッキングを学び、実践する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、実践する:HackTricks Training GCP Red Team Expert (GRTE)