Parameter Pollution

HTTP Parameter Pollution nədir?

HTTP Parametr Pollution (HPP) hücumdan yayınma üsuludur ki, bu da təcavüzkara gizli məlumatı manipulyasiya etmək və ya əldə etmək üçün HTTP sorğusu hazırlamağa imkan verir.

Bu texnika hücum vektorunun eyni adlı parametrin çoxsaylı nümunələri arasında bölünməsinə əsaslanır. Müvafiq HTTP RFC-lərinin heç biri HTTP parametrlərinin manipulyasiyasının semantikasını müəyyən etmədiyinə görə, hər bir veb tətbiqi çatdırılma platforması onunla fərqli şəkildə məşğul ola bilər.

Bəzi mühitlər sorğu daxilində parametr adının bütün nümunələrindən götürülmüş dəyərləri birləşdirərək bu cür sorğuları emal edir. Təcavüzkar nümunə əsaslı təhlükəsizlik mexanizmlərini keçmək üçün bu davranışdan sui-istifadə edir.

HTTP Parametr Pollution işləyir?

HPP, çoxlu parametrlərin eyni adı paylaşdığı HTTP sorğularının idarə edilməsində qeyri-müəyyənlikdən istifadə edir. Təcavüzkar hər birində zərərli kodun bir hissəsini ehtiva edən təkrarlanan parametr adları ilə HTTP sorğusu göndərir. Bu sorğuların server tərəfindən işlənməsi onun konfiqurasiyası və xüsusi veb proqram çərçivəsindən asılıdır.

Bəzi serverlər zərərli kodu server tərəfində effektiv şəkildə yenidən yığaraq eyni adlı parametrlərin dəyərlərini qruplaşdırır. Digər serverlər zərərli parametr dəyərlərini zərərli parametrlərin arxasında gizlətmək üçün istifadə edilə bilən təkrarlanan parametrin yalnız birinci və ya sonuncu nümunəsindən istifadə edə bilər.

Zərərli kodu zərərsiz görünən parametrlər daxilində bölmək və gizlətmək qabiliyyəti HPP-ni hücumların həyata keçirilməsi üçün xüsusilə gizli bir texnika edir. O, məlum zərərli nümunələri müəyyən etməyə əsaslanan veb tətbiqi təhlükəsizlik divarı (WAF) və müdaxilənin aşkarlanması sistemi kimi ənənəvi təhlükəsizlik mexanizmlərini keçə bilər. HPP texnikası tətbiqin davranışını manipulyasiya edə bilər, bu da icazəsiz məlumat əldə etməyə, məlumatın açıqlanmasına və ya hətta uzaqdan kodun icrasına səbəb ola bilər.

HTTP Parametr Pollution nümunəsi

Veb tətbiqinin istifadəçiləri müəyyən bir URL-ə yönləndirmək üçün parametrdən istifadə etdiyi bir ssenarini nəzərdən keçirək. Etibarlı sorğu URL-i bu kimi görünə bilər:

http://example.com/home?redirectURL=internalPage

Burada redirectURL parametrinin istifadəçinin yönləndiriləcəyi daxili səhifənin URL-ni ehtiva etməsi gözlənilir.

Təcavüzkar parametr iki dəfə görünməklə çirklənmiş sorğu göndərməklə bunu manipulyasiya edə bilər:

http://example.com/homeredirectURL=internalPage&redirectURL=http://malicious.com

Bu halda, tətbiqin təkrar redirectURL parametri ilə işləməsi SES nəticəsində gözlənilməz nəticəyə səbəb ola bilər. Bəzi serverlər parametr dəyərlərini birləşdirərək, potensial olaraq istifadəçinin nəzərdə tutulan daxili səhifə əvəzinə zərərli xarici vebsayta yönləndirilə biləcəyi boşluq açır. Beləliklə, SES təcavüzkarın sorğunu manipulyasiya etməsinə və təhlükəsizlik mexanizmlərini yan keçməsinə imkan verir.

HTTP Parametrləri

HTTP parametrləri müştəri tərəfi məlumatlarını serverə daşıyan HTTP sorğusunun bir hissəsidir. Onlar HTTP kommunikasiyasının vacib aspektidir və müştəriyə istifadəçi daxiletmə məlumatları kimi əlavə məlumatla sorğunu fərdiləşdirməyə imkan verir.

Aşağıda bir neçə fərqli HTTP parametrləri var:

GET Requests

İstəkləri GET sorğuları verilmiş URL-dən istifadə edərək serverdən məlumat alır. GET sorğusundakı parametrlər URL-ə əlavə olunur. Onlar bərabər işarə ilə ayrılmış açar-dəyər cütləri kimi daxil edilir, ampersand isə hər cütü ayırır. Sual işarəsi bütün parametrlər sətirindən əvvəldir. Məsələn,

http://example.com?page=1 URL-də page=1 GET parametridir.

Konsepsiyanı daha yaxşı izah etmək üçün bir nümunə nəzərdən keçirək. Tutaq ki, bizim onlayn kitab mağazamız var və konkret kitabın təfərrüatlarını əldə etmək istəyirik. GET sorğusu bu kimi görünə bilər:

http://bookstore.com/books?title=ToKillAMockingbird&author=HarperLee

In this example, `http://bookstore.com/books` is the URL to which the request is made. The question mark `?` indicates the start of the parameters. Two parameters are included in this GET request: `title` and `author`. The value of `title` is `ToKillAMockingbird`, and the value of `author` is `HarperLee`. An ampersand separates these parameters `&`.

This GET request asks the server to retrieve the book “To Kill a Mockingbird” by Harper Lee.

POST Requests

POST requests send data to a server to create/update a resource. Unlike GET parameters, POST parameters are sent in the body of the HTTP request, not in the URL. They are typically used for sending large amounts of data, including files, and for data that needs to be secure, like user passwords.

A typical example of a POST request would be creating a new user in a system. If we continue with the online bookstore analogy, suppose we want to add a new user to the system with the username `BookLover101` and password `SecretPassword`.

The POST request might look like this, sent to the URL `http://bookstore.com/users`:

POST / istifadəçilər HTTP/1.1

Ev sahibi: bookstore.com

Məzmun növü: proqram/x-www-form-urlencoded

Məzmun-uzunluq: uzunluq

username=BookLover101&password=SecretPassword

Bu misalda birinci sətir, POST /users HTTP/1.1 POST sorğusunu göstərir. "Host" sorğunun göndərildiyi yerdir. Məzmun növü serverə hansı verilənlərin göndərildiyini bildirir (bu halda, forma məlumatları) və Məzmun uzunluğu əsas məlumatın nə qədər uzun olduğunu müəyyən edir.

Başlıqdan sonra boş bir sətir, sonra sorğunun əsas hissəsidir. Bədəndə POST parametrləri istifadəçi adıparol, onların müvafiq dəyərləri BookLover101SecretPassword var. Bunlar GET parametrləri ilə eyni şəkildə kodlanır: bərabər işarəsi ilə ayrılmış açar-dəyər cütləri və hər bir cüt işarə ilə ayrılır. Server bu sorğunu verilmiş istifadəçi adı və şifrə ilə yeni istifadəçi yaratmaq əmri kimi şərh edəcək.

PUT/PATCH Requests

PUT PATCH sorğuları POST sorğularına bənzəyir. Onlar həmçinin sorğunun gövdəsinə məlumat göndərirlər. Bununla belə, onlar mövcud resursları yeniləmək üçün istifadə olunur. PUT sorğuları bütün resursu təqdim edilmiş məlumatlarla əvəz edir, PATCH sorğuları isə yalnız parametrlərdə göstərilən hissələri dəyişdirir.

DELETE Requests

DELETE sorğuları xüsusi resursu silmək üçün istifadə olunur. Onlar yalnız resurs identifikatorunu parametr kimi tələb edir, adətən GET sorğularına bənzər URL-ə əlavə olunur.

HTTP Parametr Pollution Hücumlarının Azaldılması

HTTP Parametrlərinin Çirklənməsi (HPP) hücumlarının azaldılması ehtiyatlı kodlaşdırma təcrübələrini, ciddi parametrlərin yoxlanılmasını və yenilənmiş təhlükəsizlik mexanizmlərinin tətbiqini əhatə edir. Burada nəzərə alınmalı bəzi strategiyalar var:

Yalnız məlum parametrləri qəbul edin: Tətbiqinizin yalnız gözlənilən parametrləri qəbul etdiyinə əmin olun. Tanınmamış parametrlər anomaliya kimi qəbul edilməlidir, nəticədə xəta və ya sorğuya məhəl qoyulmur.

Strict Parameter Validation: Bütün daxiletmələri növ, format və diapazon üçün təsdiq edin. Parametrin ədəd olacağı gözlənilirsə, bütün qeyri-rəqəm daxiletmələri rədd edilməlidir.

Tək Parametr Nümunələri: Tətbiqinizi parametrin yalnız birinci instansiyasını qəbul etmək üçün dizayn edin. Hər hansı əlavə hallar nəzərə alınmamalıdır. Bu, təcavüzkarın SES-dən istifadə etmək üçün eyni parametrdən dəfələrlə istifadə etməsinin qarşısını ala bilər.

Giriş sanitarizasiyası: Güclü giriş sanitarlaşdırma rutini həyata keçirin. Bu, istifadəçi girişindən potensial zərərli sətirləri silməyə kömək edəcək.

Təhlükəsizlik Başlıqlarından İstifadə: Kod inyeksiya hücumları riskini azaltmaq üçün Məzmun Təhlükəsizlik Siyasəti kimi təhlükəsizlik başlıqlarından istifadə etməyi düşünün.

Təhlükəsizlik Mexanizmlərini Yeniləyin: Veb tətbiqi təhlükəsizlik duvarlarını, müdaxilənin aşkarlanması sistemlərini və digər təhlükəsizlik müdafiələrini mütəmadi olaraq yeniləyin. Yenilənmiş sistemlər hücumların yeni formalarını tanımaq və bloklamaq ehtimalı daha yüksəkdir.

Müntəzəm Kod Baxışı: Müntəzəm kodun nəzərdən keçirilməsi potensial zəiflikləri istismar edilməzdən əvvəl müəyyən etməyə və yamamağa kömək edə bilər. Imperva ilə HTTP Parametrinin Çirklənməsinin Azaldılması

Imperva Web Application Firewall (WAF) sıfıra yaxın yanlış pozitivlərlə zərərli hücumları dayandırır, qlobal SOC isə vəhşi təbiətdə aşkar edildikdən bir neçə dəqiqə sonra təşkilatınızın ən son hücumlardan qorunmasını təmin edir.

HTTP protokolunun təsdiqi qaydalarını tətbiq etməklə WAF bufer daşması, zərərli kodlaşdırma, HTTP qaçaqmalçılığı və qeyri-qanuni server əməliyyatları daxil olmaqla protokol istismarlarının qarşısını ala bilər. Imperva RFC standartlarına ciddi riayət etməyə imkan verən defolt siyasəti təmin edir, eyni zamanda xüsusi tətbiqlər üçün kiçik dəyişikliklərə icazə verir.

Imperva WAF, kənardan verilənlər bazasına qoruyan hərtərəfli Veb Tətbiq və API Qoruma (WAAP) yığınının əsas komponentidir, ona görə də aldığınız trafik yalnız istədiyiniz trafikdir. Sənayedə ən yaxşı veb-sayt mühafizəsi ilə Imperva OWASP Top 10 əhatə dairəsindən kənara çıxan analitikləri birləşdirən və üçüncü tərəf kodunun yaratdığı riskləri azaldan PCI-yə uyğun, avtomatlaşdırılmış təhlükəsizlik təmin edir.

Last updated