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 Format Strings або Class Pollution, можуть дозволити вам читати внутрішні дані python, але не дозволять виконувати код. Тому, пентестер повинен максимально використати ці дозволи на читання, щоб отримати чутливі привілеї та ескалувати вразливість.
Головна сторінка додатку Flask, ймовірно, міститиме глобальний об'єкт app
, де цей секрет налаштовано.
У цьому випадку можливо отримати доступ до цього об'єкта, просто використовуючи будь-який гаджет для доступу до глобальних об'єктів з сторінки обходу пісочниць Python.
У випадку, коли вразливість знаходиться в іншому файлі python, вам потрібен гаджет для переходу між файлами, щоб дістатися до основного, щоб отримати доступ до глобального об'єкта app.secret_key
, щоб змінити секретний ключ Flask і мати можливість ескалації привілеїв знаючи цей ключ.
Пейлоад, подібний до цього з цього опису:
Використовуйте цей payload, щоб змінити app.secret_key
(ім'я у вашому додатку може бути іншим), щоб мати можливість підписувати нові та більш привілейовані flask cookies.
Використовуючи ці payload з цього опису ви зможете отримати доступ до machine_id та uuid node, які є основними секретами, необхідними для генерації Werkzeug pin, який ви можете використовувати для доступу до python консолі в /console
, якщо режим налагодження увімкнено:
Зверніть увагу, що ви можете отримати локальний шлях сервера до app.py
, викликавши деяку помилку на веб-сторінці, яка дасть вам шлях.
Якщо вразливість знаходиться в іншому файлі python, перевірте попередній трюк Flask для доступу до об'єктів з основного файлу python.
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)