Python Internal Read Gadgets
Temel Bilgiler
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.
Flask - Gizli anahtarı okuma
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.
Werkzeug - machine_id ve node uuid
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.
Last updated