Python Internal Read Gadgets
Last updated
Last updated
Вивчайте та практикуйте хакінг AWS: Навчання HackTricks AWS Red Team Expert (ARTE) Вивчайте та практикуйте хакінг GCP: Навчання HackTricks GCP Red Team Expert (GRTE)
Різні вразливості, такі як Рядки формату Python або Забруднення класу можуть дозволити вам читати внутрішні дані Python, але не дозволять виконувати код. Тому пентестеру потрібно максимально використовувати ці дозволи на читання, щоб отримати чутливі привілеї та ескалювати вразливість.
На головній сторінці додатка Flask, ймовірно, буде **глобальний об'єкт app
, де цей секрет налаштований.
У цьому випадку можливий доступ до цього об'єкту, просто використовуючи будь-який гаджет для доступу до глобальних об'єктів зі сторінки Bypass Python sandboxes.
У випадку, коли вразливість знаходиться в іншому файлі Python, вам потрібен гаджет для переходу між файлами, щоб отримати доступ до основного, щоб отримати доступ до глобального об'єкту app.secret_key
для зміни секретного ключа Flask і мати можливість підвищення привілеїв знавши цей ключ.
Пейлоад, подібний до цього з цього опису:
Використовуйте цей вразливий код для зміни app.secret_key
(назва в вашому додатку може бути іншою), щоб мати можливість підписувати нові та більш привілейовані куки flask.
Використовуючи цей вразливий код з цього опису, ви зможете отримати доступ до machine_id та uuid вузла, які є основними секретами, необхідними для генерації піна Werkzeug, який можна використовувати для доступу до консолі Python у /console
, якщо увімкнений режим налагодження:
Зверніть увагу, що ви можете отримати локальний шлях сервера до app.py
, спровокувавши деяку помилку на веб-сторінці, яка поверне вам шлях.
Якщо вразливість знаходиться в іншому файлі Python, перевірте попередній трюк Flask для доступу до об'єктів з основного файлу Python.
Вивчайте та практикуйте взлом AWS:Навчання HackTricks AWS Red Team Expert (ARTE) Вивчайте та практикуйте взлом GCP: Навчання HackTricks GCP Red Team Expert (GRTE)