5 KiB
Python İçsel Okuma Araçları
{% hint style="success" %}
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)
HackTricks'i Destekleyin
- Abonelik planlarını kontrol edin!
- 💬 Discord grubuna katılın veya telegram grubuna katılın veya bizi Twitter 🐦 @hacktricks_live** takip edin.**
- Hacking püf noktalarını paylaşarak PR'ler göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.
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.
app = Flask(__name__, template_folder='templates')
app.secret_key = '(:secret:)'
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:
{% code overflow="wrap" %}
__init__.__globals__.__loader__.__init__.__globals__.sys.modules.__main__.app.secret_key
{% endcode %}
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:
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug]._machine_id}
{ua.__class__.__init__.__globals__[t].sys.modules[werkzeug.debug].uuid._node}
{% hint style="warning" %}
Sunucunun yerel yolunu app.py
dosyasına ulaşmak için web sayfasında bazı hatalar oluşturarak yolunuzu alabilirsiniz.
{% endhint %}
Eğer zafiyet farklı bir python dosyasında ise, ana python dosyasından nesnelere erişmek için önceki Flask hilesini kontrol edin.
{% hint style="success" %}
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)
**HackTricks'i Destekleyin**
- Abonelik planlarını kontrol edin!
- 💬 Discord grubuna katılın veya telegram grubuna katılın veya bizi Twitter 🐦 @hacktricks_live'da takip edin.
- Hacking püf noktalarını paylaşarak PR'ler göndererek HackTricks ve HackTricks Cloud github depolarına katkıda bulunun.