Varnost

Izvedba napada na ponarejeno prošnjo na več mestih

Izvedba napada na ponarejeno prošnjo na več mestih
Napad CSRF je tisti, zaradi katerega overjeni uporabniki izvajajo neželena dejanja v spletni aplikaciji, s katero so overjeni. To se izvede prek zunanjega spletnega mesta, ki ga obišče uporabnik in ki sproži ta dejanja.

V tem članku boste od aplikacije pridobili zahtevane informacije, da boste vedeli, kaj mora storiti napadalno mesto za pošiljanje veljavnih zahtev ranljivemu strežniku. Nato boste ustvarili stran, ki simulira zakonite zahteve in uporabnika zvabi, da obišče to stran med preverjanjem pristnosti. Naredili boste tudi nekaj ponovitev osnovnega dokaza koncepta, da bo videti bolj kot napad iz resničnega sveta, kjer ga žrtev ne opazi. Upoštevajte, da je kodno datoteko tega članka mogoče najti v avtorjevem githubu.

Pripravljati se

Za ta članek boste potrebovali veljaven uporabniški račun v BodgeIt. Ta članek uporablja [e-pošta zaščitena] kot žrtev:

Kako narediti…

Najprej morate analizirati prošnjo, ki jo želite prisiliti žrtev. Če želite to narediti, potrebujete Burp Suite ali drug strežnik proxy, konfiguriran v brskalniku:

  1. Prijavite se v BodgeIt kot kateri koli uporabnik in kliknite uporabniško ime, da odprete profil.
  2. Spremenite geslo. Oglejte si, kako je videti zahteva v strežniku proxy:

    Torej je OBJAVI zahteva do http: // 192.168.56.11 / bodgeit / geslo.jsp, in ima v telesu samo geslo in njegovo potrditev.

  3. Poskusite narediti zelo preprosto HTML stran, ki podvaja to zahtevo. Ustvari datoteko (poimenuj jo csrf-change-password.html) z naslednjo vsebino:







  4. Zdaj naložite to datoteko v isti brskalnik kot prijavljena seja:
  5. Kliknite »Pošlji« in preusmerjeni boste na stran s profilom uporabnika. Povedal vam bo, da je bilo geslo uspešno posodobljeno.
  6. Čeprav to dokazuje bistvo, lahko zunanje spletno mesto (ali lokalna stran HTML kot v tem primeru) izvede zahtevo za spremembo gesla v aplikaciji. Še vedno je malo verjetno, da bo uporabnik kliknil na Pošlji Lahko ga avtomatizirate in skrijete vnosna polja, tako da je zlonamerna vsebina skrita. Zdaj naredite novo stran na podlagi prejšnje; pokliči csrf-change-password-script.html:


    Popolnoma neškodljiva stran


    To stran lahko zaupate.
    Z vami ali vašim računom BodgeIt se ne bo zgodilo nič slabega.





    Tokrat ima obrazec parameter ID in na strani je skript, ki bo poslal svojo vsebino, ko bo stran v celoti naložena.

  7.  Če naložite to stran v isti brskalnik, v katerem je bila uvedena seja BodgeIt, bo samodejno poslala zahtevo in po tem se bo prikazala stran s profilom uporabnika. Na naslednjem posnetku zaslona brskalnika Razhroščevalecnastavite točko prekinitve tik pred zahtevo:
  8. Ta zadnji poskus je videti boljši z vidika napadalca. Žrtev potrebujete samo za nalaganje strani in zahteva bo poslana samodejno, nato pa bo žrtev videla Vaše geslo je bilo spremenjenosporočilo in to bo zagotovo opozorilo.
  9. Napadajočo stran lahko še izboljšate tako, da naloži odgovor v neviden okvir znotraj iste strani. Za to obstaja veliko načinov; hitra in umazana je nastavitev velikosti 0 za okvir. Vaša datoteka bi izgledala takole:


    Popolnoma neškodljiva stran


    To stran lahko zaupate.
    Z vami ali vašim računom BodgeIt se ne bo zgodilo nič slabega.
    target = "target_frame">





    Upoštevajte, kako je ciljna lastnost obrazca iframe, definiran tik pod njim, in da ima tak okvir 0% višine in širine.

  10. Novo stran naložite v brskalnik, kjer je bila seja začeta. Ta posnetek zaslona prikazuje, kako izgleda stran, ko jo pregledate z brskalnikom Orodja za razvijalce: Opazite, da je objekt iframe samo črna črta na strani in v programu Inspector lahko vidite, da vsebuje stran s profilom uporabnika BodgeIt.
  11. Če analizirate omrežne komunikacije, ki jih izvaja vaša stran CSRF, lahko vidite, da dejansko pošilja zahteve za spremembo gesla BodgeIt:

Kako deluje…

Ko pošljete zahtevo iz brskalnika in že imate shranjen piškotek, ki pripada ciljni domeni, bo brskalnik priložil piškotek zahtevi, preden bo poslana. To je tisto, zaradi česar so piškotki tako priročni kot identifikatorji sej, vendar je zaradi tega, kako deluje HTTP, tudi ranljiv za napad, kakršnega ste videli v tem članku.

Ko naložite stran v isti brskalnik, kjer imate aktivno aplikacijo, brskalnik samodejno priloži sejni piškotek tej zahtevi. To se zgodi, tudi če gre za drug zavihek ali okno in ta stran pošlje zahtevo domeni, v kateri se seja začne.

Če strežnik ne preveri, ali zahteve, ki jih prejema, dejansko izvirajo iz aplikacije, zlonamernemu spletnemu mestu omogoča klicanje v imenu zakonitih, aktivnih uporabnikov, ki obiščejo to zlonamerno spletno mesto, medtem ko so overjeni v ciljni domeni.

V preizkusu penetracije spletne aplikacije prva koda, ki ste jo uporabili, tista z dvema besedilnima polji in Pošlji gumb lahko zadostuje za dokazovanje prisotnosti varnostne napake. Vendar pa je testiranje penetracije aplikacije lahko del drugega posla, kot je socialni inženiring ali vaja rdeče ekipe. V tem primeru bo treba nekaj dodatnih naporov preprečiti, da bi žrtev uporabnik sumil, da se nekaj dogaja.

V tem članku ste z JavaScriptom avtomatizirali pošiljanje zahteve tako, da ste na strani nastavili dogodek ob nalaganju in izvedli način oddaje obrazca v funkciji obdelave dogodkov. Za nalaganje odziva na spremembo gesla ste uporabili tudi skriti iframe, tako da žrtev nikoli ne vidi sporočila, da se je njegovo / njeno geslo spremenilo.

Če se vam zdi ta članek zanimiv, lahko raziščete Kuharska knjiga za preizkušanje spletnega prodiranja Kali Linux - druga izdaja odkriti najpogostejše spletne ranljivosti in preprečiti, da bi postale nevarne za varnost vašega spletnega mesta. Kuharska knjiga za preizkušanje spletnega prodiranja Kali Linux - druga izdaja vam daje veščine, ki jih potrebujete za pokrivanje vseh stopenj preizkusa penetracije - od zbiranja informacij o sistemu in aplikaciji do prepoznavanja ranljivosti z ročnim testiranjem.

Kako uporabiti Xdotool za spodbujanje klikov in pritiskov mišk v Linuxu
Xdotool je brezplačno in odprtokodno orodje za ukazno vrstico, ki simulira klike in pritiske tipk. Ta članek bo zajemal kratek vodnik o uporabi xdotoo...
Najboljših 5 izdelkov z ergonomsko računalniško miško za Linux
Ali dolgotrajna uporaba računalnika povzroča bolečine v zapestju ali prstih? Ali imate trde sklepe in bi se morali neprestano tresti z rokami? Ali čut...
How to Change Mouse and Touchpad Settings Using Xinput in Linux
Most Linux distributions ship with “libinput” library by default to handle input events on a system. It can process input events on both Wayland and X...