Python Internal Read Gadgets
Temel Bilgiler
Python Format Dizeleri veya Sınıf Kirliliği gibi farklı zayıflıklar, python içsel verilerini okumanıza izin verebilir, ancak kodu yürütmenize izin vermeyebilir. Bu nedenle, bir pentester, bu okuma izinlerinden duyarlı ayrıcalıklar elde etmek ve zayıflığı yükseltmek için en iyi şekilde yararlanmalıdır.
Flask - Gizli anahtarı okuma
Bir Flask uygulamasının ana sayfasında, bu gizli anahtarın yapılandırıldığı app
global nesnesi olabilir.
Bu durumda, Python kum havuzlarını atlatma sayfasından herhangi bir araç kullanarak bu nesneye erişmek mümkündür.
Zafiyet başka bir Python dosyasında ise, ana dosyaya ulaşmak için dosyaları gezinmek için bir araca ihtiyacınız vardır. Bu şekilde Flask gizli anahtarını değiştirerek bu anahtarı bilerek ayrıcalıkları yükseltebilirsiniz.
Bu yazıdan bir örnek yük:
Bu payload'ı kullanarak app.secret_key
'i (uygulamanızdaki adı farklı olabilir) değiştirerek yeni ve daha fazla yetkiye sahip flask çerezlerini imzalayabilirsiniz.
Werkzeug - machine_id ve node uuid
Bu yazıdan bu payload'ı kullanarak machine_id ve uuid düğümüne erişebilirsiniz, bunlar Werkzeug pinini oluşturmak için ihtiyaç duyduğunuz ana sırlardır. Eğer hata ayıklama modu etkinse, /console
içinde python konsoluna erişmek için kullanabileceğiniz Werkzeug pinini oluşturabilirsiniz:
Dikkat, app.py
dosyasının sunucunun yerel yolunu alabilirsiniz, web sayfasında bir hata oluşturarak yolunuzu elde edebilirsiniz.
Eğer zafiyet başka bir python dosyasında ise, ana python dosyasından nesnelere erişmek için önceki Flask hilesine bakın.
Last updated