Ano ang Kontaminasyon ng HTTP Parameter at bakit ito isang tunay na panganib?

Huling pag-update: 19/04/2026
May-akda: Isaac
  • Ginagamit ng HTTP Parameter Pollution ang mga dobleng parameter upang baguhin ang lohika ng mga web application sa pamamagitan ng pagsasamantala sa naunang halaga.
  • Ang epekto nito ay mula sa maliliit na pagkabigo hanggang sa pag-bypass ng authentication at pag-iwas sa WAF, na nakakaapekto pa nga sa malalaking provider.
  • Limitado ang awtomatikong pagtukoy, kaya kinakailangang pagsamahin ang mga partikular na tool, manu-manong pagsubok, at mahusay na mga kasanayan sa secure development.
  • Ang pag-unawa kung paano pinangangasiwaan ng bawat stack ang mga paulit-ulit na parameter ay susi sa pagpapagaan ng HPP at pag-iwas sa mga hindi pagkakapare-pareho sa pagitan ng pagpapatunay at aktwal na paggamit.

Kontaminasyon ng Seguridad sa Web at Parameter ng HTTP

Kapag pinag-uusapan natin ang seguridad ng web application, maraming tao ang iniisip lamang ang Mga pagkabigo sa SQL Injection, XSS, o pagpapatotooGayunpaman, sa loob ng maraming taon ay mayroong isang medyo tahimik na pamamaraan na patuloy na hindi napapansin sa maraming pag-awdit: kontaminasyon o polusyon ng HTTP parameter, na kilala bilang Polusyon ng Parameter ng HTTP (HPP) o Kontaminasyon ng Parameter ng HTTP.

Sinasamantala ng ganitong uri ng kahinaan kung paano pinamamahalaan ng iba't ibang teknolohiya at framework ng server ang... mga dobleng parameter sa parehong kahilingan ng HTTPKung ang aplikasyon ay hindi handa para dito, maaaring baguhin ng isang umaatake ang panloob na lohika, laktawan ang mga pagpapatunay, linlangin ang mga web application firewall (WAF), at kontrolin pa ang mga kritikal na functionality tulad ng authentication o pamamahala ng pahintulot.

Konsepto ng mga parameter ng HTTP at ang kanilang mga nauna

Mga parameter ng HTTP sa mga web application

Sa halos bawat modernong website, nagpapadala ang mga gumagamit ng data sa pamamagitan ng Mga parameter ng HTTP sa URL o sa katawan ng kahilinganAng mga parameter na ito ay nagbibigay-daan sa browser na magpasa ng impormasyon sa application: mga paghahanap, datos ng form, mga pagpipilian sa survey, mga komento, mga kredensyal sa pag-login, atbp.

Sa isang tipikal na kahilingan ng GET, ang datos na iyon ay naglalakbay sa query string (lahat ng bagay na kasunod ng ? sign sa URL)Ang mga pares ng key/value ay pinaghihiwalay ng simbolong ampersand (&). Sa isang POST request, maaari silang nasa katawan, ngunit ang application logic sa server ay karaniwang tinatrato ang mga ito nang halos kapareho: mga susi na may isa o higit pang nauugnay na mga halaga.

Maraming mga lengguwahe at balangkas ng programming ang nagbibigay ng mga pamamaraan para makuha ang pareho isang halaga ng isang parameter tulad ng kumpletong listahan ng mga halaga kung ang parameter na iyon ay paulit-ulit na lumilitaw. Karaniwan ito, halimbawa, sa mga checkbox na nagpapahintulot sa maraming pagpipilian, kung saan ang parehong pangalan ng parameter ay lumilitaw nang ilang beses.

Lumilitaw ang problema kapag ipinapalagay ng developer na Magkakaroon lamang ng isang halaga sa bawat parameter. at gumagamit ng mga function na nagbabalik ng isang halaga, habang ang browser (o ang attacker) ay nagpapadala ng maraming halaga na may parehong pangalan. Sa puntong ito, isang mahalagang konsepto ang papasok: prayoridad ng mga halaga.

Depende sa wika, framework, at web server, ang paulit-ulit na paglitaw ng parehong parameter ay maaaring magresulta sa ilang mga pag-uugali: na ang unang halagang natanggapna siya ang kukuha ng huling halaga o kaya'y nalilikha isang kombinasyon ng lahat (halimbawa, pinagdugtong ng mga kuwit)Walang iisang pamantayan, kaya ang bawat technology stack ay maaaring kumilos nang iba, na nagbubukas ng pinto sa mga mapanganib na sitwasyon.

Ang katotohanang iisa lang ang ibinabalik na halaga ng isang function ay hindi isang kahinaan sa sarili nito, ngunit kapag mayroong Mga duplikadong parameter at hindi alam ng developer Depende sa kung paano gumagana ang naunang iyon, ang aplikasyon ay maaaring makakuha ng hindi inaasahang halaga. Ang hindi pangkaraniwang pag-uugali na ito ang siyang eksaktong ginagamit ng mga pamamaraan. Polusyon sa Parameter ng HTTP.

Ano ang HTTP Parameter Pollution (HPP)?

Ang polusyon ng HTTP parameter ay isang pamamaraan na binubuo ng magpasok ng mga karagdagang parameter o mga delimiter ng query string (naka-encode) sa loob ng iba pang umiiral na mga parameter. Kapag ang na-inject na parameter na iyon ay na-decode at ginamit muli upang bumuo ng isang bagong URL o upang bumuo ng isa pang kahilingan, ang application Nagsasama ito ng mga karagdagang parameter na hindi inaasahan ng developer..

Sa madaling salita, ginagamit ng HPP ang paraan kung saan ang aplikasyon Binubuo nito muli ang mga URL, pinoproseso ang mga form, at pinangangasiwaan ang mga paulit-ulit na parameter.Kung ang input ay hindi wastong na-validate, maaaring pilitin ng isang attacker ang application na bigyang-kahulugan ang mga halagang iba sa inaasahan o magsama ng mga karagdagang parameter sa mga link, form, at redirect.

Ang mga pamamaraan ng HPP ay ipinakilala sa publiko ni Stefano Di Paola at Luca Carettoni sa kumperensya ng OWASP AppSec 2009. Simula noon, naidokumento na ang mga ito maraming senaryo ng pag-atakeNgunit kahit ngayon, wala na ang mga ito ng parehong visibility gaya ng iba pang mas kilalang mga kahinaan, ni hindi rin sila ganap na sakop ng lahat ng automated tools.

Ang epekto ng isang HTTP Parameter Pollution attack ay higit na nakadepende sa partikular na lohika ng aplikasyonng balangkas at ng web server. Sa ilang mga kaso, ang mga kahihinatnan ay maliliit lamang (mga error sa presentasyon, pagkabigo sa pag-print ng label, atbp.), ngunit sa iba ay maaari itong mangahulugan ng pag-iwas sa pagpapatotoo, pagbabago ng mga pahintulot, o manipulasyon ng mga kritikal na operasyon.

Para maging tunay na magagamit ang kahinaan ng HPP, dapat na ang mekanismo ng pagbabasa ng parameter ng server o framework ay magbalik ng halagang iba sa inaasahan kapag nakatagpo ito ng mga dobleng parameter. Mula roon, maaaring manipulahin ng attacker ang naunang iyon upang patnubayan ang daloy ng aplikasyon pabor sa kanila.

Paano pinangangasiwaan ng mga server ang mga dobleng parameter

Ang pangunahing teknikal na elemento na nagpapangyari sa HPP ay nakasalalay sa hindi pantay na pag-uugali ng iba't ibang mga web server at mga wika sa backend kapag pinoproseso ang mga paulit-ulit na parameter. Hindi lahat ay gumagawa ng parehong bagay, at ang pagkakaiba-iba na iyon ang siyang nagbibigay-daan sa mga umaatake na makahanap ng mga kahinaan.

Sa ilang mga kapaligiran, kung magpapadala kami ng URL na may ganitong uri baryabol1=val1&baryabol1=val2itatago lamang ng server ang unang halaga (val1). Sa iba, kakailanganin nito ang huling halagang natanggap (val2). At sa ilang mga kaso, gaya ng nangyayari sa ilang mga konpigurasyon ng IIS, ang dalawang halaga ay pagdugtungin sa loob ng isang listahan, halimbawa ay pinaghihiwalay ng mga kuwit, na siyang kailangang bigyang-kahulugan ng aplikasyon.

  Ano ang Moltbot (dating Clawdbot), paano ito gumagana, at ang mga panganib sa paggamit nito?

Isang karaniwang binabanggit na halimbawa ay ang Apache Sa default na gawi nito, karaniwan nitong pinapanatili ang unang halaga ng isang parameter at itinatapon ang mga sumusunod, habang ang ibang mga teknolohiya ay bumubuo ng isang Listahan ng CSV (Comma Separated Values) kasama ang lahat ng mga halaga ng maruming parameter na iyon. Kung ang backend application ay iniakma lamang sa isa sa mga kasong iyon, ang mga hindi makontrol na senaryo ay maaaring magdulot ng mga hindi inaasahang epekto.

Ang paghawak na ito ng mga duplicate na parameter ay hindi lamang nakakaapekto sa lohikang nakikita ng gumagamit, kundi pati na rin mga kontrol sa panloob na seguridad, mga validator ng input, mga gawain sa pagpapatotoo at awtorisasyonMaaaring suriin ang parehong parameter sa isang punto sa aplikasyon gamit ang isang halaga, at gamitin sa ibang punto na may ibang halaga, lahat sa loob ng parehong kahilingan.

Bukod pa rito, maaaring gamitin ang mga HPP upang samantalahin ang mga panloob na pagbabago ng karakter na siyang ginagawa mismo ng server. Naidokumento na, halimbawa, kung paano binabago ng ilang server ang ilang partikular na karakter (tulad ng karakter na "]" na pinapalitan ng "_") habang pinoproseso, na maaaring gamitin upang pag-iwas sa mga panuntunan sa pagsala o mga WAF firmware batay sa mga regular na expression.

Mga bunga at senaryo ng pagsasamantala ng HPP

Ang mga pamamaraan ng HTTP Parameter Pollution ay nagbibigay-daan sa pagbuo ng medyo malawak na hanay ng mga sitwasyon ng panganib, kapwa sa panig ng server at kliyente. Ang kanilang kalubhaan ay nakasalalay sa tungkulin ng apektadong parameter at ang punto sa daloy ng aplikasyon kung saan ito ay binabago.

Kabilang sa mga pinakakapansin-pansing bunga na naobserbahan sa mga mahihinang aplikasyon ay ang pag-overwrite ng mga protektadong parameterAng isang attacker ay maaaring magdagdag ng higit sa isang value para sa isang kritikal na parameter at pilitin ang application na gamitin nang eksakto ang malisyosong value salamat sa kung paano gumagana ang precedence sa partikular na kapaligirang iyon.

Karaniwan din para sa HPP na pahintulutan ang pagbabago sa inaasahang pag-uugali ng aplikasyonHalimbawa, sa pamamagitan ng pagpapalit ng mga filter sa mga internal na search engine, pagpapalit ng mga resource identifier, pagmamanipula ng mga operasyon sa pagboto, o pag-iiba-iba ng mga parameter na kumokontrol sa business logic (tulad ng mga admin flag, debug mode, o transaction states).

Isa pang mahalagang bunga ay ang pag-iwas sa mga pagpapatunay ng inputKung susuriin ng security validation code ang unang paglitaw ng isang parameter, ngunit ang aktwal na operasyon ay isinagawa sa susunod na paglitaw, maaaring malampasan ng isang attacker ang tila mahusay na naipatupad na mga kontrol sa seguridad. Nakita na ito sa mga kaso ng pagpapatunay at pag-bypass sa kontrol ng pag-access.

Sa mas kumplikadong mga konteksto, maaaring magdulot ang HPP ng mga error sa panloob na aplikasyon, pagkakalantad ng sensitibong impormasyon, pag-access sa mga baryabol sa labas ng nilalayong saklaw at maging ang paggamit ng mga pinagsama-samang parameter na, kapag muling pinagsama-sama, ay bumubuo ng mga payload na hindi nakita ng isang WAF noong pinag-aaralan ang bawat parameter nang hiwalay.

Kung pag-uusapan ang epekto, naobserbahan ang mga pag-atake mula sa magkabilang panig. sa panig ng server (paglampas sa WAF, pagbabago sa muling pagsusulat ng URL, pagpilit sa iba't ibang panloob na ruta) simula noong panig ng kliyente (paglalagay ng mga parameter sa mga link at form upang linlangin ang mga biktima sa pamamagitan ng mga espesyal na minanipulang URL).

Klasikong halimbawa ng HPP sa isang aplikasyon sa pagboto

Para mas maunawaan kung paano gumagana ang isang HTTP Parameter Pollution attack, ang halimbawa ng isang aplikasyon sa web ng pagboto na nakasulat sa JSPkung saan pinapayagan ang mga gumagamit na bumoto para sa kanilang paboritong kandidato sa iba't ibang halalan.

Ang aplikasyon ay tumatanggap sa pamamagitan ng isang parameter na tinatawag na election_id Ang identifier ng kasalukuyang halalan. Gamit ang value na ito, bubuo ang server ng isang pahina na naglilista ng mga available na kandidato, bawat isa ay may link para bumoto. Ang paraan Request.getParameter("pares") Sa JSP, kapag maraming halaga ang naroroon para sa parehong parameter, palagi nitong ibinabalik ang unang halaga.

Isipin natin ang isang URL na ganito: http://servidor/eleccion.jsp?eleccion_id=4568Ang resultang pahina ay magpapakita ng link para bumoto para sa bawat kandidato, halimbawa:

1 linkBoto ako para kay G. White
2 linkBoto ako para kay Ginang Green

Ipagpalagay natin na ang isang malisyosong gumagamit, na sumusuporta sa isang partikular na kandidato, ay napagtanto na ang aplikasyon ay hindi matagumpay na napapatunayan ang parameter na choice_idSinamantala ang kahinaan ng HPP, nagpasya itong ipasok ang parameter kandidato sa loob ng choice_id na iyon, na nagko-encode ng mga delimiter ng query string.

Ang URL na binubuo nito ay maaaring ganito: http://servidor/eleccion.jsp?eleccion_id=4568%26candidato%3DgreenTandaan na in-encode ng attacker ang simbolong & bilang %26 at ang simbolong = bilang %3D, kaya, pagkatapos ng pag-decode, sila ay magiging isang bagong parameter ng kandidato na naka-embed sa loob ng halagang election_id.

Kapag nag-click ang biktima sa minanipulang URL na iyon, tila naa-access nila ang tamang eleksyon. Gayunpaman, dahil ginagamit ng application ang halagang election_id upang bumuo ng mga link sa pagboto, idine-decode ang na-inject na halaga... Nagtatapos ito sa pagsasama ng isang karagdagang kandidato sa nagresultang string ng query.

Ang resulta ay ang mga internally generated links ay nagiging ganito:

1 linkBoto ako para kay G. White
2 linkBoto ako para kay Ginang Green

Hindi mahalaga kung alin sa dalawang link ang kini-click ng biktima: ang script Ang voting.jsp ay palaging tumatanggap ng dalawang pagkakataon ng parameter ng kandidatokung saan ang unang halaga ay berde. Dahil gumagamit ang developer ng karaniwang Java functionality upang makakuha ng iisang halaga, kinukuha lamang nila ang unang halaga ng candidate parameter at itinatapon ang pangalawa, na siyang kukuha ng aktwal na boto ng user.

Dahil sa ganitong pag-uugali, ang kahinaan ng HPP ay nagbibigay-daan sa umaatake pilitin ang lahat ng boto sa pahinang iyon na mapunta sa kanilang kandidatoanuman ang mga pagpipilian ng biktima sa interface. Ito ay isang napakalinaw na halimbawa kung paano ang isang umano'y "simpleng" pamamahala ng parameter ay maaaring magkaroon ng direktang epekto sa integridad ng datos at lohika ng negosyo.

  Ano ang ComboFix. Mga Gamit, Mga Tampok, Opinyon, Mga Presyo

Pag-bypass sa pagpapatotoo: ang kaso ng Blogger

Isa sa mga pinakakilalang halimbawa ng pagsasamantala sa polusyon ng HTTP Parameter ay naganap sa sistema ng pag-blog ng BloggerAng isang kahinaan sa paghawak ng parameter ay nagbigay-daan sa mga attacker na makakuha ng access sa maging mga administrador ng mga blog ng ibang taosa pamamagitan lamang ng pagmamanipula sa mga parameter ng isang POST request.

Ang problematikong kahilingan ay parang ganito (pinapadali ang syntax):

POST /add-authors.do HTTP/1.1
security_token=attackertoken&blogID=attackerblogidvalue&blogID=victimblogidvalue&authorsList=attackermail%40gmail.com&ok=Invite

Ang problema ay nasa katotohanang ang mekanismo ng pagpapatunay at pag-verify ng seguridad Nakatingin lang ako sa unang parameter na blogID na dumating sa kahilingan, na nagpapatunay na ang gumagamit ay may mga pahintulot sa blog na iyon. Gayunpaman, ang aktwal na operasyon na idinagdag ng panauhing may-akda ay isinagawa gamit ang pangalawang paglitaw ng blogID, na tumutugma sa blog ng biktima.

Dahil sa panloob na kontradiksyon na ito, ang paraan ng paghawak ng server sa mga dobleng parameterNagawa ng attacker na makapasa sa mga security check para sa sarili nilang blog ngunit isinagawa ang aksyon sa kabilang blog. Ang resulta ay isang kumpletong pag-bypass sa pagpapatotoo sa pamamagitan ng isang mahusay na pagkakagawa na kahilingan.

Mahusay na ipinapakita ng kasong ito kung paano ang HPP ay hindi lamang isang "teknikal na kuryosidad", kundi isang pamamaraan na may mga totoong epekto sa mga sistema ng malalaking providerBukod pa rito, itinatampok nito ang kahalagahan ng mga pagsusuri sa seguridad at ang pagpapatupad ng mga operasyon gamit ang eksaktong parehong mga halaga ng parameter, nang hindi umaasa sa walang kontrol na nauna.

HPP at Web Application Firewall (WAF)

Maraming organisasyon ang umaasa sa isang WAF bilang karagdagang layer upang protektahan ang kanilang mga web application mula sa mga kilalang pag-atake. Ang mga firewall na ito ay karaniwang nakabatay sa mga tuntunin at lagda (mga regular na ekspresyon) na inilalapat sa mga parameter, header at maging sa katawan ng mga kahilingan sa HTTP.

Ang problema ay, sa pagkakaroon ng mga dobleng parameter, maaaring gawin ng isang attacker hatiin ang isang malisyosong payload sa ilang mga halaga ng parehong parameterBagama't pinag-aaralan nang hiwalay ng WAF ang bawat parameter, posible na wala sa mga nakahiwalay na halaga ang tumutugma sa mga lagda ng pag-atake, kaya ang kahilingan ay pumasa sa mga filter nang hindi naharang.

Kapag ang kahilingang iyon ay nakarating sa web server, sa application engine, o sa server mismo muling binubuo ang mga halaga ayon sa panloob na lohika nito (halimbawa, sa pamamagitan ng pagsasama-sama ng mga kuwit o pagkuha ng huli), na nagreresulta sa isang string na, sa kabuuan, ay bumubuo sa pag-atake. Sa ganitong paraan, ang parehong pamamaraan ng polusyon ng parameter ay nagbibigay-daan lampasan ang mga WAF na hindi handa upang suriin ang pinagsama-samang hanay ng mga halaga.

Bukod pa rito, ang ilang WAF na hindi gumagana bilang reverse proxy At ang mga walang kumpletong pananaw sa daloy sa pagitan ng client at server, ngunit kumikilos bilang mga point filter, ay maaaring maging lubhang mahina laban sa mga HPP bypass na ito. Ang mga nakabatay sa mga teknolohiya tulad ng Apache na may parameter scoring at statistical analysis engine Mas maayos ang kanilang pagkilos sa harap ng ganitong uri ng mga pamamaraan.

Sa madaling salita, ipinapakita ng HPP na kahit na may maayos na na-configure na WAF, Hindi garantisado ang kaligtasan Kung ang mismong application at server logic ay hindi humahawak nang maayos sa mga duplicate na parameter, dapat na komprehensibo ang proteksyon at isinasaalang-alang kung paano pinoproseso ang mga kahilingan sa lahat ng antas.

Mga totoong kaso, kagamitan at paglaganap ng HPP

Ipinakita ng akademikong pananaliksik at ng gawain ng mga eksperto sa seguridad na ang polusyon sa mga parameter ng HTTP ay hindi bihira. Ang mga proyektong tulad ng PAPAS (Sistema ng Pagsusuri ng Polusyon ng PArameter), na pinapatakbo ng mga mananaliksik tulad ni Carmen Torrano, ay dinisenyo nang tumpak upang awtomatikong matukoy ang mga kahinaan ng HPP sa mga malawakang aplikasyon sa web.

Sa mga eksperimentong isinagawa sa mahigit 5000 na sikat na website (ayon sa mga ranggo tulad ng Alexa), naobserbahan na halos 30% ng mga site na sinuri Naglalaman ang mga ito ng kahit isang pahinang mahina laban sa HPP. Ibig sabihin, posibleng magpasok ng naka-encode na parameter sa isa pang umiiral na parameter at beripikahin na lumalabas na na-decode ito sa ilang nagresultang URL o form.

Mas kapansin-pansin pa ay malapit sa 47% ng mga kahinaan na natagpuan (na katumbas ng humigit-kumulang 14% ng kabuuang mga site) ay talagang mapagsamantalahannagpapahintulot sa mga pag-atake na higit pa sa mga simpleng depekto sa presentasyon. Kabilang sa mga apektadong site ay Mga malalaking pangalan tulad ng Microsoft o GoogleNililinaw nito na kahit ang mga higanteng kumpanya ng teknolohiya ay hindi ligtas sa mga problemang ito.

Kagamitan tulad ng PAPAS Nagsilbi sila upang suriin at sukatin ang problema, ngunit binigyang-diin din nila ang kahirapan ng awtomatikong matukoy ang HPPMaraming tradisyonal na web vulnerability scanner ang hindi lubusang isinasaalang-alang ang mga senaryo ng duplicate parameter, o nakakabuo ang mga ito ng napakaraming false positive.

Bukod sa mga partikular na solusyon tulad ng POTATOES, may mga extension din tulad ng HPP Finder para sa Google ChromeAng mga tool na ito ay dinisenyo upang matukoy ang mga potensyal na vector ng pag-atake ng HPP sa mga URL at HTML form. Bagama't makakatulong ang mga ito na matukoy ang mga kahina-hinalang punto (halimbawa, mga form na gumagamit muli ng mga parameter nang walang wastong pagpapatunay), hindi sila bumubuo ng isang hindi isang kumpletong solusyon o pamalit sa isang malalimang pag-audit ng seguridad.

Ang isa pang kagamitang malawakang ginagamit sa ecosystem ng pagsubok sa seguridad ay OWASP ZAPna kinabibilangan ng mga extension at script para sa pagsubok ng iba't ibang vector, kabilang ang mga nauugnay sa mga parameter sa query string. Gayunpaman, sa partikular na kaso ng HPP, kinakailangan pa ring pagsamahin ang mga automated tool sa manu-manong pagsusuri at pag-unawa sa daloy ng aplikasyon.

  Mag-set up ng mga custom na alerto para sa mga pagbabago sa network o mga bagong device gamit ang GlassWire

HPP sa mga internal search engine at mga halimbawa tulad ng Apple.com

Ang mga HPP ay hindi lamang naobserbahan sa mga sistema ng pamamahala ng blog o mga panel ng administrasyon, lumilitaw din ang mga ito sa mga tila hindi nakakapinsalang function tulad ng mga tag search engine sa mga online forum at komunidad. Isang kapansin-pansing halimbawa ang natagpuan sa Mga forum ng Apple, kung saan ang pamamahala ng mga maruming label at parametro ay nagpakita ng mga kakaibang pag-uugali.

Sa mga forum na ito, ang pagpili ng tag sa interface ay nagdagdag ng parameter tag Ang query string sa URL ay ipinasa sa halaga ng napiling tag. Kinuha ng backend application ang halagang ito, hinanap ang mga paksang may tag na iyon, at ipinakita ang mga resulta sa user. Kung maraming tag ang napili, lahat ng mga ito ay idinaragdag. sa parehong parameter ng mga tag, na pinaghihiwalay ng operator ng pagdaragdag (+)kaya handa na ang backend na iproseso ang listahang iyon.

Nang ang parameter ng mga tag ay nadumihan ng ilang mga dobleng halaga, naobserbahan na ang teknolohiya ng backend ay nakabuo ng isang listahang pinaghihiwalay ng kuwit (CSV) kasama ang lahat ng mga halaga ng kontaminadong parameter. Nagawa ng application na bahagyang iproseso ang listahang iyon (tuklasin ang iba't ibang mga tag) ngunit Hindi nito na-print nang tama ang lahat ng label. sa text field ng search engine.

Sa partikular na kontekstong ito, tila walang maaaring pagsamantalahang bug sa seguridad, ngunit malinaw na May mga senaryo na hindi isinaalang-alang ng mga developerSa iba pang mga aplikasyon na hindi gaanong inosenteng paraan, ang katulad na pag-uugali ay maaaring humantong sa mga pagkakaiba sa pagitan ng kung ano ang napatunayan, kung ano ang ginagamit, at kung ano ang ipinapakita sa gumagamit, na may mas malulubhang kahihinatnan.

Ang pagsusuri ng mga pinagbabatayang teknolohiya sa mga forum tulad ng sa Apple (halimbawa, Apache na may J2EE sa backend) ay nagpapakita na maraming modernong stack ang kumikilos nang katulad ng sa mga server tulad ng IIS o mga kumbinasyon tulad ng Apache at Python kapag humahawak ng mga kontaminadong parameter, bumubuo ng mga listahang pinaghihiwalay ng kuwit at nagdedelegate ng pangwakas na paggamot ng mga halagang iyon sa lohika ng aplikasyon.

Ang mga ganitong uri ng halimbawa ay nagsisilbing paalala na Hindi sapat para "tila gumana" ito sa mga normal na kaso.Kailangan mong sistematikong subukan kung paano tutugon ang application kapag pinadalhan ito ng mga dobleng parameter, mga kakaibang naka-code na value, mga hindi pangkaraniwang kombinasyon, atbp., dahil doon nahahanap ang HPP ng niche nito.

Pagtuklas at pagpapagaan ng Polusyon ng Parameter ng HTTP

Ang pagtuklas at pagpapagaan ng HPP ay nangangailangan ng isang hybrid na pamamaraan na pinagsasama ang mahusay na mga kasanayan sa secure development, wastong configuration ng server, at paggamit ng mga partikular na toolHindi sapat ang umasa lang sa WAF para ayusin ang lahat, dahil gaya ng nakita natin, maraming beses na ang mismong layer na iyon ang maaaring malinlang.

Mula sa perspektibo ng pag-unlad, mahalaga na ang mga programmer Tandaan na ang isang parameter ay maaaring magkaroon ng maraming halaga at dapat silang tahasang magdesisyon kung paano hahawakan ang kasong iyon. Hindi sila dapat umasa sa default na wika o mga pag-uugali sa balangkas nang walang masusing pag-unawa sa kung paano gumagana ang inuuna ng halaga.

Inirerekomenda rin na, sa mga kritikal na punto tulad ng pagpapatotoo, awtorisasyon, mga sensitibong operasyon, o mahahalagang pagbabago sa estadoMahigpit na pinatutunayan na ang mga parameter ay lumilitaw lamang nang isang beses, tinatanggihan ang mga kahilingan na may mga dobleng parameter o, kahit man lang, itinatala ang mga ito para sa pagsusuri.

Tungkol sa imprastraktura, mainam na suriin ang mga configuration ng web server at framework Upang maunawaan nang eksakto kung ano ang mangyayari kapag natanggap ang isang paulit-ulit na parameter: kung ang una, ang huli, o lahat ng mga ito ay pinananatili. Mula doon, maaaring isaayos ang lohika ng aplikasyon upang maiwasan ang mga pagkakaiba sa pagitan ng pagpapatunay at ang aktwal na paggamit ng halaga.

Tungkol sa mga kagamitan, bukod pa sa karaniwang mga vulnerability scanner, kapaki-pakinabang na isama ang mga naka-target na solusyon tulad ng PAPAS o uri ng mga extension Tagahanap ng HPP sa daloy ng pagsubok. Kung gagamitin ang OWASP ZAP o iba pang mga tool sa pentesting, mahalagang magdisenyo ng mga partikular na script na bubuo ng mga kahilingan na may mga dobleng parameter at halaga na naka-code sa iba't ibang paraan upang obserbahan ang reaksyon ng aplikasyon.

Panghuli, mahalagang kilalanin na ang HPP ay isang problema mas laganap kaysa sa karaniwang inaakalaTotoo ito lalo na sa malalaking aplikasyon na may maraming taon ng ebolusyon. Ang pagsasama-sama ng pagsasanay, pagsusuri ng code, awtomatikong pagsubok, at mahusay na dinisenyong manu-manong pagsubok ang pinakamahusay na paraan upang makontrol ang mga error na ito.

Ang kontaminasyon ng HTTP parameter ay nararapat na nakakuha ng lugar nito sa mga pamamaraan ng pag-atake sa web na dapat nasa radar ng anumang pangkat ng pag-develop at seguridad: Ito ay maingat, mahirap makita sa isang sulyap lamang sa mga troso, at maaaring magkaroon ng malulubhang kahihinatnan. kung nakakaapekto ito sa mga pangunahing parameter ng business logic o mga kontrol sa seguridad. Ang pag-unawa kung paano pinangangasiwaan ang mga duplicate na parameter sa iyong stack, at aktibong pagsubok sa mga sitwasyong ito, ay isa sa mga gawaing maaaring mukhang medyo nakakapagod sa simula, ngunit malaki ang pagkakaiba nito sa pagitan ng isang gumaganang application lamang at ng isa na tunay na matatag laban sa mga advanced na pag-atake.