HTTP header-lər nədir?
HTTP header-lər, istifadəçi və web-server arasında HTTP əlaqəsi qurulan zaman göndərilən məlumat başlıqlarıdır. HTTP header-lərə Host, User-Agent, Content-Type, Set-Cookie kimi header-ləri nümunə olaraq vermək olar.
X-Forwarded Header-lər nədir?
X-Forwarded Header-ləri HTTP proxy və ya load balancer vasitəsi ilə istifadəçi və web-server arasında qurulan HTTP əlaqə zamanı istifadə olunan İP address, protokol, port və s. məlumatları saxlayan başlıqlardır.
X-Forwarded header-lərin bu növləri var : X-Forwarded-For, X-Forwarded-Proto, X-Forwarded-Port, X-Forwarded-Host, X-Forwarded-Server.
X-Forwarded-For
X-Forwarded-For header-ı web-serverə sorğu göndərən istifadəçinin İP addressini saxlayan başlıqdır. X-Forwarded-For header-ı load balancing, logging, WAF məqsədilə istifadə oluna bilər.
X-Forwarded-For: client1, proxy1, proxy2X-Forwarded-Proto
X-Forwarded-Proto header-ı web-serverə sorğu göndərən istifadəçinin hansı protokoldan istifadə etdiyini(HTTP, HTTPS) saxlayan başlıqdır. X-Forwarded-Proto header-ı web-serverlə şifrəli bağlantının qurulub-qurulmadığını müəyyən etmək üçün istifadə oluna bilər.
X-Forwarded-Proto: http
X-Forwarded-Proto: httpsX-Forwarded-Port
X-Forwarded-Port header-ı web-serverə sorğu göndərən istifadəçinin hansı portdan istifadə etdiyini saxlayan başlıqdır. Web-serverə sorğu göndərərkən standart olmayan portlardan istifadə edərkən X-Forwarded-Port header-dan istifadə etmək daha məqsədəuyğundur.
X-Forwarded-Port: 1234X-Forwarded-Host
X-Forwarded-Host header-ı istifadəçinin sorğu göndərdiyi original hostun addressini saxlayan başlıqdır. Əgər 1 serverdə yəni 1 İP addressində bir neçə web-sayt saxlanılırsa, bu zaman X-Forwarded-Host header-indən istifadə etmək daha məqsədəuyğundur.
X-Forwarded-Host: example.comX-Forwarded Header-lərin istismarı
X-Forwarded header-lərdən istifadə edərək web yönümlü hücumlar həyata keçirmək mümkündür. WAF baypass, Access Control bypass, Protocol downgrade, Log poisoning haqqında danışaq.
WAF bypass
Bəzi WAF-lar X-Forwarded-For header-dən istifadə edərək istifadəçinin real İP-sini müəyyən edir. Bəzi hallarda WAF bu İP-ləri blok edir. Bu zaman biz HTTP sorğusuna X-Forwarded-For header-ı əlavə edərək, bir növ istifadəçi İP-sini dəyişərək WAF-ı bypass edirik.
X-Forwarded-For: 127.0.0.1Access Control bypass
Bəzi web-saytlar whitelist texnikasından istifadə edərək whitelist-də olan İP-lərə yüksək imtiyazlar verir. Biz X-Forwarded-For header-dən istifadə edərək öz İP-mizi whitelist-dəki İP-lərlə maskalayaraq yüksək imtiyaz əldə edə bilərik.
X-Forwarded-For: 192.168.0.10Protocol Downgrade
Yuxarıda qeyd etdiyim kimi web-serverlər X-Forwarded-Proto header-dən istifadə edərək sorğu göndərən istifadəçinin hansı protokoldan istifadə etdiyini(HTTP, HTTPS) və şifrəli bağlantı qurub-qurmayacağını müəyyən edir. Biz X-Forwarded-Proto header-dən istifadə edərək şifrəli bağlantını(HTTPS) şifrəsiz bağlantıya(HTTP) çevirib həssas məlumatları ələ keçirə bilərik.
X-Forwarded-Proto: httpLog poisoning
X-Forwarded-For header-ın istifadə məqsədlərində biri logging-dir. Web-server X-Forwarded-For header-dən istifadə edərək istifadəçinin İP-sini log fayllarına qeyd edir. Biz X-Forwarded-For header-nə zərərli kod inject edərək müxtəlif hücumlar həyata keçirə bilərik.
X-Forwarded-For: <script>alert('XSS')</script>
X-Forwarded-For: ' OR '1'='1Qorunma yolları
- Validation və Sanitization : Header-lərin blacklist və ya whitelist ilə yoxlanmaq və artıq simvolları təmizləmək lazımdır.
- Əlavə təhlükəsizlik tədbirləri : İstifadəçinin şəxsiyətinin doğrulanması üçün iki faktorlu doğrulama, CAPTCHA və s. istifadə etməliyik.
- Güvənilən proxy-lərdən istifadə : Ancaq güvəndiyimiz proxy-lərin "X-Forwarded-For" headerlərindən istifadə etməliyik.
- Real IP-lərin loglanması : Digər üsullar ilə (Məsələn X-Real-İP) istifadəçilərin real İP-lərini tapmalıyıq.
Oxuduğunuz üçün təşəkkür edirəm.
Linkedin : https://www.linkedin.com/in/javid-maharramli-58a98b1b1/