Aranjeunna mendakan versi énggal tina serangan HTTP Request Smuggling

nu sistem wéb dimana frontend nampi koneksi ngalangkungan HTTP / 2 sareng ngalirkeun aranjeunna kana backend via HTTP / 1.1 hparantos kakeunaan vérsi anyar serangan "HTTP Request Smuggling", Éta ngamungkinkeun ku ngirimkeun permintaan klien anu dirarancang khusus, pikeun ngabagi eusi pamundut pangguna sanés anu diolah dina aliran anu sami antara frontend sareng backend.

Seranganna tiasa dianggo nyuntik kode JavaScript jahat dina sési kalayan situs anu sah, jalan pintas sistem pangwatesan aksés sareng parameter auténtikasi nyegat.

Panulis pangajaran nunjukkeun kamungkinan nyerang sistem Netflix, Verizon, Bitbucket, Netlify CDN sareng Atlassian, sareng nampi $ 56.000 dina program hadiah pikeun ngaidentipikasi kerentanan. Masalahna ogé parantos dikonfirmasi dina produk F5 Jaringan.

masalahna sawaréh mangaruhan mod_proxy dina Apache http server (CVE-2021-33193), perbaikan anu diarepkeun dina vérsi 2.4.49 (pamekar dibéjaan ngeunaan masalah dina awal Mei sareng nampi 3 bulan kanggo ngalereskeunana). Dina nginx, kamampuan pikeun sacara sakaligus netepkeun header "Content-Length" sareng "Transfer-Encoding" diblokir dina versi sateuacanna (1.21.1).

Prinsip kerja tina metode anyar tina pamundut anu cocog dina patalimarga sami sareng kerentanan anu dipendakan ku panaliti anu sami dua taun ka pengker, tapi éta dugi ka antar muka anu nampi pamundut langkung ti HTTP / 1.1.

Serangan klasik "HTTP Request Smuggling" didasarkeun kana kanyataan yén frontend sareng backends napsirkeun panggunaan HTTP "Lila-Kandungan" header sacara béda (nangtoskeun ukuran total data dina pamundut) sareng "Transfer-Encoding: chunked" ( ngamungkinkeun anjeun mindahkeun data dina sakumpulan) ...

Salaku conto, upami antarbeungeutna ngan ukur ngadukung "Panjang-Kandungan" tapi teu malire "Transfer-Encoding: Fragmented", panyerang tiasa ngirim pamenta anu ngandung header "Content-Length" sareng "Transfer-Encoding: Fragmented", tapi ukuranana id "Panjang eusi" henteu cocog sareng ukuran string anu dikepak. Dina hal ieu, frontend bakal ngolah sareng alihan pamundut numutkeun "Panjang eusi", sareng backend bakal ngantosan blok réngsé dumasar kana "Transfer encoding: chunked".

Beda sareng protokol HTTP / 1.1 tékstual, anu diurai dina tingkat garis, HTTP / 2 mangrupikeun protokol binér sareng ngamanipulasi blok data ukuran anu parantos ditangtukeun. Nanging, HTTP / 2 nganggo semu lulugu anu pakait sareng lulugu HTTP normal. Nalika berinteraksi sareng backend ngagunakeun protokol HTTP / 1.1, frontend narjamahkeun judul-judul samaran ieu dina lulugu HTTP / 1.1 HTTP anu sami. Masalahna nyaéta tukang nyieun kaputusan ngeunaan analisa pangiriman dumasar kana lulugu HTTP anu ditetepkeun ku frontend, tanpa terang parameter tina paménta aslina.

Malah dina bentuk semu-header, nilaina "Eusi-panjang" sareng "transfer-encoding" éta tiasa dialirkeun, sanaos henteu dianggo dina HTTP / 2, kumargi ukuran sadaya data ditangtukeun dina bidang anu misah. Nanging, nalika ngarobah pamundut HTTP / 2 ka HTTP / 1.1, header ieu ngalirkeun sareng tiasa ngabingungkeun backend.

Aya dua pilihan serangan utama: H2.TE sareng H2.CL, numana backend dibobodo ku encoding transfer anu salah atanapi nilai panjang eusi anu henteu saluyu sareng ukuran aktual tina badan paménta anu ditampi ku frontend ngalangkungan Protokol HTTP / 2.

Salaku conto serangan H2.CL, ukuran anu salah ditangtoskeun dina semu lulugu panjang eusi nalika ngirimkeun pamundut HTTP / 2 ka Netflix. Pamundut ieu nyababkeun ditambahan judul HTTP Kandungan-Panjang sami nalika ngakses backend via HTTP / 1.1, tapi kumargi ukuran di Kandungan-Panjang kirang tina anu saleresna, bagian tina data dina antrian diprosés salaku awal paménta salajengna.

Attack Tools parantos parantos ditambihan kana Burp's Toolkit sareng sayogi salaku perpanjangan Turbo Intruder. Proksi wéb, beban balancer, akselerator wéb, sistem pangiriman kontén, sareng konfigurasi sanés dimana pamundut dialihkeun dina skéma frontend-backend rentan ka masalah.

sumber: https://portswigger.net


Eusi tulisan taat kana prinsip urang tina étika éditorial. Pikeun ngalaporkeun kasalahan klik di dieu.

Janten kahiji komen

Ninggalkeun koméntar anjeun

email alamat anjeun moal diterbitkeun. Widang diperlukeun téh ditandaan ku *

*

*

  1. Jawab data: Miguel Ángel Gatón
  2. Tujuan tina data: Kontrol SPAM, manajemén koméntar.
  3. Legitimasi: idin anjeun
  4. Komunikasi data: Data moal dikomunikasikan ka pihak katilu kacuali ku kawajiban hukum.
  5. Panyimpenan data: Basis data anu diayakeun ku Occentus Networks (EU)
  6. Hak: Iraha waé anjeun tiasa ngawatesan, cageur sareng mupus inpormasi anjeun.