Viena papildu jauna rinda var salauzt TLS pēc CONNECT
Pārbaudiet HTTP galvenju ietvaru, kad ar roku rakstīts starpniekservera savienotājs atver tuneli un uzreiz izraisa TLS dekodēšanas kļūdu.
Kad CONNECT atgriež 200 un TLS uzreiz nespēj atšifrēt, pārbaudiet savienotāja robežbaitu pirms sertifikātu vai šifru maiņas.
Ģenerētā autorizācijas vērtība jau var beigties ar jaunu rindu. Vēl viena rindas beigu pievienošana var priekšlaicīgi pabeigt HTTP galveni, atstājot paredzēto Host lauku vai citu atklātu tekstu aiz pieprasījuma.
Minimāls HTTP/1.1 CONNECT pieprasījums izmanto CRLF starp rindām un tukšu rindu beigās:
b"CONNECT example.com:443 HTTP/1.1\r\nHost: example.com:443\r\n\r\n"Novietojiet jebkuru autorizācijas lauku pirms šīs pēdējās tukšās rindas, bez iegultas rindas pārtraukuma. Python "\n" apzīmē jaunu rindu; neapstrādāta virkne ar slīpsvītru un burtu n to neapzīmē. Pārbaudiet, kādus baitus ģenerē kodēšanas palīgs, pirms mēģināt tos noņemt—vecāki palīgi varēja pievienot rindu pārtraukumus.
Kad CONNECT izdodas, šie atlikušie baiti pieder tuneļa protokolam. Nomaldījies atklāts teksts var sasniegt partneri, kas gaida TLS. Veiksmīgais statuss nevar salabot baitus, kas jau ir rindā pēc nepareiza pieprasījuma.
Pārbaudiet arī uztveršanas robežu. Izlasiet pilnu starpniekservera atbildi pirms ligzdas nodošanas TLS, apstrādājiet daļējas lasīšanas un saglabājiet visu, kas nolasīts aiz galvenēm. Vienai ligzdas lasīšanai nav jāsatur viena vesela ziņa.
Ja šis parsētājs pieder jums, salīdziniet rediģētu baitu attēlojumu ar vada gramatiku; turiet garumus un rindu robežas redzamas, slēpjot paroli. Lietojumprogrammai, kurai nepieciešams tikai starpniekservera savienojums, uzturēts savienotājs izvairās no šī ietvara koda piederēšanas.