Python Internal Read Gadgets
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Pythonフォーマット文字列やクラス汚染などの異なる脆弱性は、Python内部データを読み取ることを可能にするが、コードを実行することはできないかもしれません。したがって、ペンテスターはこれらの読み取り権限を最大限に活用して、機密特権を取得し、脆弱性をエスカレートさせる必要があります。
Flaskアプリケーションのメインページには、app
グローバルオブジェクトがあり、ここでこのシークレットが設定されています。
この場合、Pythonサンドボックスをバイパスするページからグローバルオブジェクトにアクセスするために、任意のガジェットを使用してこのオブジェクトにアクセスすることが可能です。
脆弱性が別のPythonファイルにある場合、メインのファイルに到達するためにファイルを横断するガジェットが必要で、グローバルオブジェクト app.secret_key
にアクセスしてFlaskの秘密鍵を変更し、この鍵を知って権限を昇格させることができるようになります。
このようなペイロードはこの書き込みから:
このペイロードを使用して、app.secret_key
(あなたのアプリでは名前が異なる場合があります)を変更し、新しいより多くの権限を持つフラスククッキーに署名できるようにします。
この書き込みからのペイロードを使用することで、machine_id と uuid ノードにアクセスでき、これらは Werkzeug pin を生成するために必要な主な秘密です。この pin を使用して、/console で Python コンソールにアクセスできます。 デバッグモードが有効な場合:
注意してください、サーバーのローカルパスを app.py
取得するには、ウェブページでいくつかのエラーを生成する必要があります。これによりパスが得られます。
脆弱性が別のPythonファイルにある場合は、メインのPythonファイルからオブジェクトにアクセスするために前のFlaskトリックを確認してください。
AWSハッキングを学び、練習する:HackTricks Training AWS Red Team Expert (ARTE) GCPハッキングを学び、練習する:HackTricks Training GCP Red Team Expert (GRTE)