5.6 KiB
Python Internal Read Gadgets
ゼロからヒーローまでAWSハッキングを学ぶ htARTE(HackTricks AWS Red Team Expert)!
HackTricks をサポートする他の方法:
- HackTricks で企業を宣伝したいまたは HackTricks をPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksスワッグを入手する
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つける
- **💬 Discordグループ**に参加するか、telegramグループに参加するか、Twitter 🐦 @hacktricks_liveをフォローする
- ハッキングトリックを共有するには、PRを HackTricks および HackTricks Cloud のGitHubリポジトリに提出してください。
基本情報
Python Format StringsやClass Pollutionなどのさまざまな脆弱性は、Python内部データを読み取ることを可能にするが、コードの実行は許可しないかもしれません。したがって、ペンテスターはこれらの読み取り権限を最大限に活用して、機密特権を取得し脆弱性をエスカレートする必要があります。
Flask - シークレットキーの読み取り
Flaskアプリケーションのメインページにはおそらく**app
グローバルオブジェクトがあり、ここにシークレットが設定されている**でしょう。
app = Flask(__name__, template_folder='templates')
app.secret_key = '(:secret:)'
この場合、Pythonサンドボックス回避ページからグローバルオブジェクトにアクセスするためのガジェットを使用してこのオブジェクトにアクセスすることが可能です。
脆弱性が別のPythonファイルにある場合、メインのファイルにアクセスするためのガジェットが必要で、Flaskのシークレットキーを変更してこのキーを知って特権を昇格するためにグローバルオブジェクト app.secret_key
にアクセスする必要があります。
この解説からのこのようなペイロード:
{% code overflow="wrap" %}
__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key
{% endcode %}
このペイロードを使用して、app.secret_key
(アプリ内の名前が異なる場合があります)を変更し、新しい特権を持つflaskクッキーに署名できるようにします。
Werkzeug - machine_id と node uuid
この解説からのペイロードを使用すると、machine_id と uuid ノードにアクセスできるようになります。これらは、Werkzeugピンを生成するために必要な主要な秘密であり、デバッグモードが有効の場合に /console
でPythonコンソールにアクセスするために使用できます。
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug]._machine_id}
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug].uuid._node}
{% hint style="warning" %}
app.py
へのサーバーのローカルパスを取得するには、ウェブページでエラーを発生させることで、パスを取得できます。
{% endhint %}
もし脆弱性が別のPythonファイルにある場合は、メインのPythonファイルからオブジェクトにアクセスするFlaskの以前のトリックをチェックしてください。
htARTE(HackTricks AWS Red Team Expert)で**ゼロからヒーローまでのAWSハッキング**を学びましょう!
HackTricksをサポートする他の方法:
- HackTricksで企業を宣伝したい場合やHackTricksをPDFでダウンロードしたい場合は、SUBSCRIPTION PLANSをチェックしてください!
- 公式PEASS&HackTricksのグッズを入手してください
- The PEASS Familyを発見し、独占的なNFTsのコレクションを見つけてください
- 💬 DiscordグループやTelegramグループに参加したり、Twitter 🐦 @hacktricks_liveでフォローしてください。
- ハッキングトリックを共有するために、HackTricksとHackTricks CloudのGitHubリポジトリにPRを提出してください。