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)
Diferentes vulnerabilidades como Python Format Strings o Class Pollution pueden permitirte leer datos internos de python pero no te permitirán ejecutar código. Por lo tanto, un pentester necesitará aprovechar al máximo estos permisos de lectura para obtener privilegios sensibles y escalar la vulnerabilidad.
La página principal de una aplicación Flask probablemente tendrá el objeto global app
donde esta secreta está configurada.
En este caso, es posible acceder a este objeto utilizando cualquier gadget para acceder a objetos globales de la página de Bypass Python sandboxes.
En el caso de que la vulnerabilidad esté en un archivo python diferente, necesitas un gadget para recorrer archivos y llegar al principal para acceder al objeto global app.secret_key
para cambiar la clave secreta de Flask y poder escalar privilegios conociendo esta clave.
Una carga útil como esta de este informe:
Utiliza esta carga útil para cambiar app.secret_key
(el nombre en tu aplicación podría ser diferente) para poder firmar nuevas y más privilegiadas cookies de flask.
Usando estas cargas útiles de este informe podrás acceder al machine_id y al uuid del nodo, que son los secretos principales que necesitas para generar el pin de Werkzeug que puedes usar para acceder a la consola de python en /console
si el modo de depuración está habilitado:
Tenga en cuenta que puede obtener la ruta local del servidor al app.py
generando algún error en la página web que le dará la ruta.
Si la vulnerabilidad está en un archivo python diferente, consulte el truco de Flask anterior para acceder a los objetos desde el archivo python principal.
Aprenda y practique Hacking en AWS:HackTricks Training AWS Red Team Expert (ARTE) Aprenda y practique Hacking en GCP: HackTricks Training GCP Red Team Expert (GRTE)