Drošība

Veicot vairāku vietņu pieprasījumu viltošanas uzbrukumu

Veicot vairāku vietņu pieprasījumu viltošanas uzbrukumu
CSRF uzbrukums ir tas, kas liek autentificētiem lietotājiem veikt nevēlamas darbības tīmekļa lietojumprogrammā, ar kuru viņi tiek autentificēti. Tas tiek darīts, izmantojot ārēju vietni, kuru apmeklē lietotājs un kas aktivizē šīs darbības.

Šajā rakstā jūs iegūsiet nepieciešamo informāciju no lietojumprogrammas, lai uzzinātu, kā rīkoties uzbrūkošajai vietnei, lai ievainojamam serverim nosūtītu derīgus pieprasījumus. Pēc tam jūs izveidosiet lapu, kas simulē likumīgos pieprasījumus un maldina lietotāju apmeklēt šo lapu autentifikācijas laikā. Jūs arī izdarīsit dažas iterācijas pamatkontroles atkārtojumus, lai tas vairāk līdzinātos reālas pasaules uzbrukumam, kur upuris to nepamana. Ņemiet vērā, ka šī raksta koda failu var atrast autora gitubā.

Sagatavoties

Šim rakstam jums būs nepieciešams derīgs lietotāja konts vietnē BodgeIt. Šis raksts izmanto [e-pasts aizsargāts] kā upuris:

Kā to izdarīt…

Pirmkārt, jums jāanalizē pieprasījums, kuru vēlaties piespiest upuri izteikt. Lai to izdarītu, jums ir nepieciešams Burp Suite vai cits pārlūkprogrammā konfigurēts starpniekserveris:

  1. Piesakieties BodgeIt kā jebkurš lietotājs un noklikšķiniet uz lietotājvārda, lai pārietu uz profilu.
  2. Veiciet paroles maiņu. Starpniekserverī skatiet, kā izskatās pieprasījums:

    Tātad, tas ir POST pieprasījums http: // 192.168. lpp.56.11 / bodgeit / parole.jsp, un ķermenī ir tikai parole un tās apstiprinājums.

  3. Mēģiniet izveidot ļoti vienkāršu HTML lapu, kas atkārto šo pieprasījumu. Izveidojiet failu (nosauciet to csrf-change-password.html) ar šādu saturu:







  4. Tagad ielādējiet šo failu tajā pašā pārlūkprogrammā, kurā esat pieteicies:
  5. Noklikšķiniet uz Iesniegt, un jūs tiksiet novirzīts uz lietotāja profila lapu. Tas jums pateiks, ka parole tika veiksmīgi atjaunināta.
  6. Lai gan tas pierāda, ārējā vietne (vai vietējā HTML lapa, kā šajā gadījumā) var izpildīt paroles maiņas pieprasījumu lietojumprogrammā. Joprojām ir maz ticams, ka lietotājs noklikšķinās uz Iesniegt Varat to automatizēt un paslēpt ievades laukus, lai ļaunprātīgais saturs būtu paslēpts. Tagad izveidojiet jaunu lapu, pamatojoties uz iepriekšējo; sauc to csrf-change-password-scripted.html:


    Pilnīgi nekaitīga lapa


    Jūs varat uzticēties šai lapai.
    Nekas slikts nenotiks ne ar jums, ne ar jūsu BodgeIt kontu.





    Šoreiz veidlapai ir ID parametrs, un lapā ir skripts, kas iesniegs tā saturu, kad lapa tiks pilnībā ielādēta.

  7.  Ja ielādējat šo lapu tajā pašā pārlūkprogrammā, kurā ir sākta BodgeIt sesija, tā automātiski nosūtīs pieprasījumu, un pēc tam tiks parādīta lietotāja profila lapa. Šajā ekrānuzņēmumā pārlūkprogramma Atkļūdotājsiestatiet pārtraukuma punktu tieši pirms pieprasījuma iesniegšanas:
  8. Šis pēdējais mēģinājums izskatās labāk no uzbrucēja viedokļa. Jums ir nepieciešams tikai upuris, lai ielādētu lapu, un pieprasījums tiks nosūtīts automātiski, bet tad upuris redzēs Jūsu parole ir nomainītaziņu, un tas noteikti izraisīs trauksmi.
  9. Jūs varat vēl vairāk uzlabot uzbrukuma lapu, liekot tai ielādēt atbildi neredzamajā rāmī tajā pašā lapā. To var izdarīt daudzos veidos; ātri un netīri ir jāiestata rāmja izmērs 0. Jūsu fails izskatīsies šādi:


    Pilnīgi nekaitīga lapa


    Jūs varat uzticēties šai lapai.
    Nekas slikts nenotiks ne ar jums, ne ar jūsu BodgeIt kontu.
    target = "target_frame">





    Ievērojiet, kā formas mērķa rekvizīts ir iframe, kas definēts tieši zem tā, un ka šādam rāmim ir 0% augstums un platums.

  10. Ielādējiet jauno lapu pārlūkprogrammā, kurā tika sākta sesija. Šis ekrānuzņēmums parāda, kā lapa izskatās, pārbaudot to ar pārlūkprogrammu Izstrādātāja rīki: Ievērojiet, ka iframe objekts ir tikai melna līnija lapā, un programmā Inspector varat redzēt, ka tajā ir BodgeIt lietotāja profila lapa.
  11. Ja analizējat tīkla saziņu, ko veic jūsu CSRF lapa, varat redzēt, ka tā faktiski pieprasa mainīt BodgeIt paroli:

Kā tas strādā…

Kad jūs nosūtāt pieprasījumu no pārlūkprogrammas un jums jau ir saglabāts sīkfails, kas pieder mērķa domēnam, pārlūks pievienos sīkfailu pieprasījumam pirms tā nosūtīšanas. Tas padara sīkfailus tik ērtus kā sesiju identifikatorus, taču šī HTTP darbības iezīme ir arī tas, kas padara to neaizsargātu pret tādu uzbrukumu, kādu redzējāt šajā rakstā.

Ielādējot lapu tajā pašā pārlūkprogrammā, kurā lietojumprogrammā ir aktīva sesija, pārlūks šim pieprasījumam automātiski pievienos sesijas sīkfailu. Tas notiek pat tad, ja tā ir cita cilne vai logs, un šī lapa pieprasa domēnu, kurā tiek sākta sesija.

Ja serveris nepārbauda, ​​vai saņemtie pieprasījumi patiešām ir radušies lietojumprogrammā, tas ļaunprātīgai vietnei ļauj zvanīt likumīgu, aktīvu lietotāju vārdā, kuri apmeklē šo ļaunprātīgo vietni, kamēr tiek autentificēti mērķa domēnā.

Tīmekļa lietojumprogrammas iespiešanās testā pirmais izmantotais kods ar diviem teksta laukiem un Iesniegt pogu, var būt pietiekami, lai parādītu drošības trūkuma klātbūtni. Tomēr lietojumprogrammas iespiešanās pārbaude var būt daļa no cita darba, piemēram, sociālās inženierijas vai sarkanās komandas vingrinājumiem. Šajā gadījumā būs jāpieliek papildu pūles, lai cietušajam lietotājam nebūtu aizdomas, ka kaut kas notiek.

Šajā rakstā jūs izmantojāt JavaScript, lai automatizētu pieprasījuma nosūtīšanu, iestatot lapā ielādes notikumu un izpildot veidlapas iesniegšanas metodi notikumu apstrādātāja funkcijā. Jūs arī izmantojāt slēptu iframe, lai ielādētu paroles maiņas atbildi, tāpēc upuris nekad neredz ziņojumu, ka viņa / viņas parole ir mainīta.

Ja jums šis raksts šķita interesants, varat to izpētīt Kali Linux tīmekļa iespiešanās testēšanas pavārgrāmata - otrais izdevums lai atklātu visizplatītākās tīmekļa ievainojamības un neļautu tām kļūt par draudiem jūsu vietnes drošībai. Kali Linux tīmekļa iespiešanās testēšanas pavārgrāmata - otrais izdevums sniedz jums prasmes, kas nepieciešamas, lai veiktu visus iespiešanās testa posmus - sākot no informācijas vākšanas par sistēmu un lietojumprogrammu līdz ievainojamību identificēšanai, izmantojot manuālu testēšanu.

Bezmaksas un atvērtā koda spēļu dzinēji Linux spēļu izstrādei
Šis raksts aptvers bezmaksas un atvērtā koda spēļu motoru sarakstu, kurus var izmantot, lai izstrādātu 2D un 3D spēles Linux. Šādu spēļu dzinēju ir da...
Tomb Raider for Linux apmācība
Tomb Raider ēna ir divpadsmitais papildinājums Tomb Raider sērijai - darbības piedzīvojumu spēļu franšīzei, kuru izveidoja Eidos Montreal. Spēli gan k...
Kā palielināt FPS Linux?
FPS apzīmē Kadri sekundē. FPS uzdevums ir izmērīt kadru ātrumu video atskaņošanā vai spēļu izrādēs. Vienkāršos vārdos nepārtrauktu pilnekrāna attēlu s...