Python Internal Read Gadgets
Last updated
Last updated
AWS Hacking'i öğrenin ve uygulayın:HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)
Python Format Strings veya Sınıf Kirliliği gibi farklı zafiyetler size Python iç verilerini okuma imkanı sağlayabilir ancak kodu yürütmenize izin vermeyebilir. Bu nedenle, bir pentester'ın bu okuma izinlerinden en iyi şekilde yararlanarak duyarlı ayrıcalıkları elde etmesi ve zafiyeti yükseltmesi gerekecektir.
Bir Flask uygulamasının ana sayfasında muhtemelen app
global nesnesi bulunur ve bu nesne üzerinde gizli anahtar yapılandırılmış olabilir.
Bu durumda, bu nesneye erişmek için sadece herhangi bir araca sahip olmak mümkündür ve Python kum havuzlarını atlatma sayfasından global nesnelere erişmek mümkündür.
Zafiyet farklı bir python dosyasında olduğunda, ana dosyaya ulaşmak için dosyalar arasında gezinmek için bir araca ihtiyacınız vardır ve Flask gizli anahtarını değiştirmek ve bu anahtarı bilerek ayrıcalıkları yükseltmek için global nesne app.secret_key
'e erişmek gerekir.
Bu yazıdan bir payload gibi:
Bu payload'ı kullanarak app.secret_key
'i (uygulamanızdaki ad farklı olabilir) değiştirin ve yeni ve daha fazla ayrıcalıklı flask çerezlerini imzalayabilin.
Bu yazıdan bu payload'ı kullanarak machine_id ve uuid düğmesine erişebilecek ve Werkzeug pinini oluşturmak için gereken ana sırlara erişebileceksiniz. Bu pin'i kullanarak /console
içinde python konsoluna erişebilirsiniz eğer hata ayıklama modu etkinse:
Sunucunun yerel yolunu app.py
dosyasına ulaşmak için web sayfasında bazı hatalar oluşturarak yolunuzu alabilirsiniz.
Eğer zafiyet farklı bir python dosyasında ise, ana python dosyasından nesnelere erişmek için önceki Flask hilesini kontrol edin.
AWS Hacking'i öğrenin ve uygulayın: HackTricks Eğitim AWS Kırmızı Takım Uzmanı (ARTE) GCP Hacking'i öğrenin ve uygulayın: HackTricks Eğitim GCP Kırmızı Takım Uzmanı (GRTE)