Codurile securizate ale codului fals de site-uri (csrf), shvetsgroup

Cod securizat: Falsificarea cererii de site (CSRF)

Codurile securizate ale codului fals de site-uri (csrf), shvetsgroup

Motivul pentru scrierea acestui articol a fost să-mi găsesc vulnerabilitatea într-un modul destul de bine cunoscut. Din cauza regulilor de detectare a vulnerabilităților. Nu am dreptul să extind detaliile, voi vorbi despre vulnerabilități în termeni generali, precum și despre metodele de combatere a acestora.







Deci, cererile de site-uri falsificate (site-ul Frosier de cereri în limba engleză sau, pe scurt, CSRF): ceea ce este și ce mănâncă.

Una dintre aplicațiile CSRF este funcționarea XSS pasivă detectată pe un alt server. De asemenea, este posibil să trimiteți mesaje spam în numele victimei și să modificați orice setări de conturi pe alte site-uri (de exemplu, întrebarea secretă pentru recuperarea parolei).

Un exemplu viu

De exemplu, trebuie să facem un mic modul, care ar trebui să șterge nodurile. Acest lucru poate fi implementat prin referința internă a link-ului, când se face clic, cererea Ajax este trimisă pe calea Drupalov. Un manipulator este atașat la această cale, care șterge nodul. Este vorba de un astfel de modul și totul se face:







node_destroy.module

node_destroy.js

Și apoi, în graba creativității distructive, creează un nod cu un astfel de contet:

Ce se întâmplă în acest moment? Nici o imagine, desigur, nu va fi încărcată, dar browserul troll va executa cererea pentru această cale cu același rezultat.

Resignat la eșec, trolul părăsește locul. După o zi, administratorul site-ului notează acest nod de gunoi, intră în el și îl șterge. Și întoarcerea la lista de materiale, nu găsește în ea noduri cu aidishnikom 123. Atacul a fost un succes. Cortina.

Pentru cei care nu înțeleg atunci când administratorul a intrat în nod, browser-ul său a rupt, de asemenea, pe link-ul de imagine. Dar a fost suficient acces imediat, iar nodul a fost îndepărtat cu succes, iar administratorul nu a observat nimic.

Cum să evitați vulnerabilitățile CSRF?

Răspunsul este să utilizați linkuri unice pentru acțiuni pentru a modifica datele. Cum este posibil acest lucru? În drupal, se folosește metoda tokenizării legăturii. Aceasta înseamnă că la legătura acțiunii active se adaugă un parametru unic, care este verificat când se efectuează acțiunea în sine. În drupal, puteți genera un astfel de parametru cu ajutorul funcției drupal_get_token (). Verificați -drupal_valid_token (). Acest simbol este generat pe baza valorii furnizate, a sesiunii de utilizator și a cheii private a site-ului, ceea ce practic anulează probabilitatea producerii de către parazit a tokenului corect.

Vom face modificări modulului nostru. Să începem cu link-ul corect:

Restul seriei "Codul sigur"







Trimiteți-le prietenilor: