Turvalisus

Saididevaheliste taotluste võltsimisrünnaku sooritamine

Saididevaheliste taotluste võltsimisrünnaku sooritamine
CSRF-rünnak on see, mis sunnib autentitud kasutajaid tegema soovimatuid toiminguid veebis rakenduses, millega nad on autentitud. Seda tehakse välise saidi kaudu, mida kasutaja külastab ja mis käivitab need toimingud.

Selles artiklis leiate rakendusest nõutava teabe, et teada saada, mida ründav sait peaks haavatavale serverile kehtivate taotluste saatmiseks tegema. Seejärel loote lehe, mis simuleerib õigustatud taotlusi ja meelitab kasutaja seda lehte autentimise ajal külastama. Teete ka paar kordust kontseptsiooni põhitõendil, et see näeks välja rohkem nagu reaalse rünnaku koht, kus ohver seda ei märka. Pange tähele, et selle artikli koodifaili leiate autori githubist.

Valmis seadma

Selle artikli jaoks vajate BodgeItis kehtivat kasutajakontot. Selles artiklis kasutatakse [meiliga kaitstud] ohvrina:

Kuidas seda teha ..

Esiteks peate analüüsima taotlust, mille soovite ohvrit tegema sundida. Selleks vajate Burp Suite'i või mõnda muud brauseris konfigureeritud puhverserverit:

  1. Logige BodgeIti sisse kui ükskõik milline kasutaja ja klõpsake profiilile minemiseks kasutajanime.
  2. Muutke parooli. Vaadake, kuidas päring puhverserveris välja näeb:

    Nii et see on POSTITA taotlus http: // 192.168.56.11 / bodgeit / parool.jsp, ning kehas on ainult parool ja selle kinnitus.

  3. Proovige teha väga lihtne HTML-leht, mis seda taotlust kordab. Looge fail (nimetage see csrf-change-password.HTML) järgmise sisuga:







  4. Nüüd laadige see fail samasse brauserisse kui sisselogitud seanss:
  5. Klõpsake nuppu Esita ja teid suunatakse kasutaja profiililehele. See ütleb teile, et parooli värskendamine õnnestus.
  6. Kuigi see tõestab asja mõtet, võib väline sait (või kohalik HTML-leht nagu praegusel juhul) täita rakenduses parooli muutmise taotluse. On endiselt ebatõenäoline, et kasutaja sellel klõpsaks Esita Saate seda automatiseerida ja sisendväljad peita, nii et pahatahtlik sisu oleks peidetud. Nüüd tehke eelmise põhjal uus leht; kutsu seda csrf-change-password-script.HTML:


    Täiesti kahjutu leht


    Saate seda lehte usaldada.
    Midagi halba ei juhtu ei teie ega teie BodgeIti kontoga.





    Seekord on vormil ID parameeter ja lehel on skript, mis esitab selle sisu, kui leht on täielikult laaditud.

  7.  Kui laadite selle lehe samasse brauserisse, kus olete algatanud BodgeIti seansi, saadab see päringu automaatselt ja pärast seda kuvatakse kasutaja profiilileht. Järgmisel ekraanipildil brauser Silurseadke murdepunkt vahetult enne taotluse esitamist:
  8. See viimane katse näeb ründaja vaatenurgast parem välja. Teil on vaja ohvrit ainult lehe laadimiseks ja taotlus saadetakse automaatselt, kuid siis näeb ohver seda Teie parooli on muudetudsõnum ja see tekitab kindlasti hoiatuse.
  9. Ründavat lehte saate veelgi paremaks muuta, pannes selle vastuse laadima nähtamatusse raami sama lehe sees. Seda saab teha mitmel viisil; kiire ja määrdunud on raami suuruse 0 määramine. Teie fail näeks välja järgmine:


    Täiesti kahjutu leht


    Saate seda lehte usaldada.
    Midagi halba ei juhtu ei teie ega teie BodgeIti kontoga.
    target = "target_frame">





    Pange tähele, kuidas vormi sihtomaduseks on selle all määratletud iframe ja et sellise raami kõrgus ja laius on 0%.

  10. Laadige uus leht brauserisse, kus seanss algatati. See ekraanipilt näitab, kuidas leht brauseriga kontrollimisel välja näeb Arendaja tööriistad: Pange tähele, et iframe-objekt on lehel ainult must joon ja Inspektoris näete, et see sisaldab BodgeIti kasutaja profiililehte.
  11. Kui analüüsite oma CSRF-lehe võrgusidet, näete, et see tegelikult taotleb BodgeIti parooli muutmist:

Kuidas see töötab…

Kui saadate päringu brauserist ja kui teil on juba sihtdomeeni kuuluv küpsis salvestatud, lisab brauser küpsise päringule enne selle saatmist. See muudab küpsised seansitunnustidena nii mugavaks, kuid see HTTP toimimise omadus muudab selle haavatavaks ka selles artiklis nähtud rünnaku suhtes.

Kui laadite lehe samasse brauserisse, kus teil on rakenduses aktiivne seanss, lisab brauser sellele päringule automaatselt seansiküpsise. See juhtub, isegi kui see on erinev vaheleht või aken, ja see leht esitab päringu domeenile, kus seanss algatatakse.

Kui server ei kontrolli, kas tema päringud pärinevad tegelikult rakendusest, lubab see pahatahtlikul saidil helistada seaduslikel ja aktiivsetel kasutajatel, kes külastavad seda pahatahtlikku saiti, olles samas sihtdomeeni autentitud.

Veebirakenduse läbitungimise testis kasutasite esimest koodi, mida kasutasite kahe tekstivälja ja koodiga Esita nupust, võib turvavea olemasolu demonstreerimiseks olla piisav. Rakenduse läbitungimise testimine võib olla aga osa muust tegevusest, näiteks sotsiaaltehnika või punase meeskonna treening. Sellisel juhul on vaja täiendavaid jõupingutusi, et vältida ohvriks langenud kasutaja kahtlustamist, et midagi juhtub.

Selles artiklis kasutasite JavaScripti abil päringu saatmise automatiseerimiseks, seades lehel onload-sündmuse ja käivitades vormi esitamismeetodi sündmuste käitleja funktsioonis. Parooli muutmise vastuse laadimiseks kasutasite ka peidetud iframe'i, nii et ohver ei näe kunagi sõnumit, et tema parool on muutunud.

Kui leiate, et see artikkel on huvitav, saate seda uurida Kali Linuxi veebikeskkonna testimise kokaraamat - teine ​​väljaanne et leida kõige levinumad veebi haavatavused ja vältida nende ohtu teie saidi turvalisusele. Kali Linuxi veebikeskkonna testimise kokaraamat - teine ​​väljaanne annab teile oskused, mida vajate läbitungimistesti iga etapi läbimiseks - alates süsteemi ja rakenduse kohta teabe kogumisest kuni nõrkade kohtade tuvastamiseni käsitsi testimise teel.

Kuidas kasutada AutoKeyt Linuxi mängude automatiseerimiseks
AutoKey on Linuxi ja X11 töölaua automatiseerimise utiliit, mis on programmeeritud Python 3, GTK ja Qt. Selle skriptimise ja MACRO funktsionaalsuse ab...
Kuidas näidata FPS-loendurit Linuxi mängudes
Linuxi mängimine sai suure tõuke, kui Valve teatas Steam-kliendi ja nende mängude Linuxi toest 2012. aastal. Sellest ajast peale on paljud AAA- ja ind...
Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...