Viņi atrada jaunu HTTP pieprasījuma kontrabandas uzbrukuma versiju

L tīmekļa sistēmas, kurās priekšpuse pieņem savienojumus, izmantojot HTTP / 2 un nodod tos aizmugurē, izmantojot HTTP / 1.1 hir pakļauti jaunai "HTTP pieprasījumu kontrabandas" uzbrukuma versijai, Tas ļauj, nosūtot īpaši izstrādātus klientu pieprasījumus, sadalīt citu lietotāju pieprasījumu saturu, kas tiek apstrādāti vienā plūsmā starp priekšpusi un aizmuguri.

Uzbrukums var izmantot ļaunprātīga JavaScript koda ievadīšanai sesijā ar likumīgu vietni, apiet piekļuves ierobežošanas sistēmas un pārtvert autentifikācijas parametrus.

Pētījuma autors parādīja iespēju uzbrukt Netflix, Verizon, Bitbucket, Netlify CDN un Atlassian sistēmām, un saņēma 56.000 5 ASV dolāru atlīdzības programmās par ievainojamību noteikšanu. Problēma ir apstiprināta arī FXNUMX Networks produktos.

Problēma daļēji ietekmē mod_proxy Apache http serverī (CVE-2021-33193), labojumi gaidāmi versijā 2.4.49 (izstrādātājiem par problēmu tika paziņots maija sākumā un tika doti 3 mēneši laika, lai to novērstu). Programmā nginx iepriekšējā versijā (1.21.1) tika bloķēta iespēja vienlaikus norādīt galvenes "Satura garums" un "Pārneses kodēšana".

Jaunās metodes darbības princips atbilstošu pieprasījumu satiksmē ir līdzīga ievainojamībai, ko pirms diviem gadiem atklāja tas pats pētnieks, bet tas attiecas tikai uz saskarnēm, kas pieņem pieprasījumus, izmantojot HTTP / 1.1.

Klasiskais "HTTP pieprasījumu kontrabandas" uzbrukums tika balstīts uz to, ka priekšējās un aizmugurējās sistēmas atšķirīgi interpretē HTTP "Satura garuma" galvenes izmantošanu (nosaka pieprasījumā esošo datu kopējo lielumu) un "Pārsūtīšanas kodējums: sadalīts" ( ļauj pārsūtīt datus gabalos) ...

Piemēram, ja saskarne atbalsta tikai “Content-Length”, bet ignorē “Transfer-Encoding: fragmented”, uzbrucējs var nosūtīt pieprasījumu, kurā ir galvenes “Content-Length” un “Transfer-Encoding: fragmented”, bet izmērs lv Satura garums neatbilst sagrieztās virknes lielumam. Šajā gadījumā priekšpuse apstrādās un novirzīs pieprasījumu saskaņā ar "Satura garumu", un aizmugure gaidīs, līdz bloks tiks pabeigts, pamatojoties uz "Pārsūtīšanas kodējums: sadalīts".

Atšķirībā no teksta HTTP / 1.1 protokola, kas tiek parsēts līnijas līmenī, HTTP / 2 ir binārs protokols un manipulē ar blokiem iepriekš noteikta lieluma dati. Tomēr HTTP / 2 izmantojiet pseido-galvenes kas atbilst parastajām HTTP galvenēm. Mijiedarbojoties ar aizmuguri izmantojot HTTP / 1.1 protokolu, priekšpuse tulko šīs pseido-galvenes līdzīgās HTTP / 1.1 HTTP galvenēs. Problēma ir tā, ka aizmugure pieņem lēmumus par pārraides analīzi pamatojoties uz priekšgala iestatītajām HTTP galvenēm, nezinot sākotnējā pieprasījuma parametrus.

Pat pseido-virsrakstu veidā vērtības "Satura garums" un "pārsūtīšanas kodējums" tos var straumēt, lai gan tie netiek izmantoti HTTP / 2, jo visu datu lielums tiek noteikts atsevišķā laukā. Tomēr, pārveidojot HTTP / 2 pieprasījumu par HTTP / 1.1, šīs galvenes iziet cauri un var radīt neskaidrības aizmugurē.

Ir divas galvenās uzbrukuma iespējas: H2.TE un H2.CL, kurā aizmugure tiek maldināta ar nepareizu pārsūtīšanas kodējumu vai satura garuma vērtību, kas neatbilst faktiskajam pieprasījuma pamatteksta lielumam, ko priekšpuse saņēmusi, izmantojot HTTP / 2 protokolu.

Kā piemērs H2.CL uzbrukumam, pseidopārvadā ir norādīts nepareizs izmērs satura garums, iesniedzot pieprasījumu HTTP / 2 uz Netflix. Šis pieprasījums noved pie galvenes pievienošanas HTTP satura garums līdzīgi, piekļūstot aizmugurē, izmantojot HTTP / 1.1, bet tā kā izmērs ir Satura garums ir mazāks par faktisko, daļa no rindā esošajiem datiem tiek apstrādāta kā nākamā pieprasījuma sākums.

Uzbrukuma rīki jau ir pievienoti Burpa rīkiem un ir pieejami kā Turbo ielaušanās paplašinājums. Tīmekļa starpniekserveri, slodzes līdzsvarotāji, tīmekļa paātrinātāji, satura piegādes sistēmas un citas konfigurācijas, kurās pieprasījumi tiek novirzīti priekšējās sistēmas aizmugures shēmā, ir pakļauti šai problēmai.

Fuente: https://portswigger.net


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: Migels Ángels Gatóns
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.