Cum de a proteja site-ul de atacuri folosind exemplul lui Habrahabra

Recent, pe Internet, puteți găsi multe beneficii pentru "hackerii începători", care descriu în detaliu toate metodele de bază ale site-urilor de hacking. Credeți că dezvoltatorii web devin din ce în ce mai inteligenți și au luat toate metodele posibile de protecție? Nu cred.

În acest articol, vreau să spun încă o dată dezvoltatorii cu privire la modul de a sparge în jos site-uri, și că nu va fi plictisit, voi rupe Habr care trece și descriu în detaliu modul în care am făcut-o. Considerăm că astfel de lucruri interesante ca „Profil activ XSS“, „karma resetare nesfârșită“, „Publicarea subiectelor marcate cu„din cutia cu nisip“,«»CSRF prin Flash și o gaură în Internet Explorer 6" și mai mult.

Toate vulnerabilitățile au fost deja rezolvate. Ei bine, aproape totul.

Aș vrea, de la bun început, să spun câteva lucruri foarte importante în opinia mea.

În primul rând, cine sunt hoții și de ce au nevoie (să nu numim "biscuiții" cuvântul "hackeri", pentru că este greșit și hackerii nu sparg pe nimeni). Nu vreau să jignesc pe nimeni, dar în cele mai multe cazuri, sunt adolescenți 15-17 ani, al căror scop principal nu este cum să obțineți bani, ci pur și simplu pentru a rupe și a obține un sentiment de o anumită auto-satisfacție.

Adesea dezvoltatorul crede că nu va veni la capul nimănui pentru a-și rupe site-ul, pentru că nu este nimic interesant acolo. Dar biscuiții de tipul descris aici nu au nevoie de acest lucru, așa că găsesc cu ușurință o vulnerabilitate și fac o defăime (de obicei postând mesajul în loc de pagina principală, Black Lord a făcut deja de câteva ori cu HabraHabr :-). Uneori nu pot găsi nici măcar o vulnerabilitate simplă, așa că folosesc exploatații gata făcute (astfel de oameni sunt numiți și "script-kiddies"). Deci, vă pot da un sfat:

  • Nu fi leneș pentru a filtra datele de intrare [aceasta va fi discutată mai departe]. chiar dacă site-ul dvs. nu este "necesar de nimeni".
  • Pune cea mai recentă versiune a software-ului este uneori periculos, dar, de asemenea, pe sit vechi nu este necesară, pentru că va fi capabil de a sparge orice persoană care știe cum să folosească de căutare și de a descărca programul special „pentru site-uri web hacking.“


Acum, să ne imaginăm că "personajul" nostru a crescut și a început să caute muncă. Ce va fi cel mai probabil să facă? Corect, ruperea pentru bani.

Acest tip nu mai reprezintă un pericol deosebit pentru site-urile în care nu există nimic interesant. Lucrează acum, în majoritate, "la cerere", adesea în grupuri mici.

În general, sfatul este același, numai acum ar trebui să vă petreceți puțin pe o persoană care va verifica site-ul dvs. pentru prezența vulnerabilităților pentru bani și vă va spune rezultatele.

Apropo, "Experții" similare sunt, de regulă, toți aceiași burgeri care s-au retras și acum trăiesc într-un mod complet pașnic.

XSS sau Crossite Scripting

Eroarea cheie a dezvoltatorului web în acest caz este filtrarea insuficientă a datelor primite de la utilizatori.

Să vedem ce ne-ar putea "plăcea" Habr. Oamenii de stiinta britanici au stabilit ca 95% dintre biscuiti se numesc ei insisi


Accesați setările profilului și introduceți această frază în câmpul "Nume real". Acum faceți clic pe "Salvați" și actualizați pagina. Găsim un șoarece și încercăm să-l conducem într-un câmp gol - a fost o fereastră? Felicitări, am găsit o vulnerabilitate!

Cum de a proteja site-ul de atacuri folosind exemplul lui Habrahabra

Asemenea vulnerabilități ies adesea atunci când sistemul nu filtrează și nici nu filtrează parțial informațiile provenite de la utilizator. Dacă scrieți în PHP, atunci are o funcție foarte bună htmlspecialchars. care permite rezolvarea problemei aproape complet.
Sensul este că nu aveți nevoie să oferiți utilizatorului posibilitatea de a utiliza toate etichetele, de asemenea trebuie să verificați cu atenție dacă a introdus ceva în eticheta permisă și dacă a ieșit din limite, ca în exemplul de mai sus.

Nu am putut găsi un exemplu de XSS pasiv pe Habr, așadar îmi voi descrie esența în cuvinte.

Cel mai frecvent loc unde pot fi găsite este o căutare. Încercați să căutați pe site-ul dvs. ceva asemănător

Verificăm alte informații primite


Filtrați nu numai etichetele HTML și ghilimele, ci și alte informații primite de la utilizator. Este deosebit de important să monitorizați logica și să nu aveți încredere în utilizator! De exemplu, nu este necesar să mergem departe - visul prețuit al oricărui trol al lui Habr, "Karma infinit de zero", a fost destul de realizabil până în prezent :-)

Dacă ați resetat deja karma dvs. și doriți să o faceți din nou, trebuie să utilizați "instrumentele de dezvoltare" pentru a vă face vizibil browserul și pentru al ascunde și faceți clic pe "Zero"!

De exemplu, am creat o "virtuală", mi-am fuzionat karma, am zero-o, am golit-o, am redus din nou, și așa mai departe ...

Cum de a proteja site-ul de atacuri folosind exemplul lui Habrahabra

Cum de a proteja site-ul de atacuri folosind exemplul lui Habrahabra

Voi da un alt exemplu foarte interesant. Când publicăm un articol nou sau edem un articol vechi, schimbarea câmpului "topic_type" în "sandbox" vă permite să obțineți zarurile "Din nisip".

Cum de a proteja site-ul de atacuri folosind exemplul lui Habrahabra

De ce ai nevoie de asta? Ei bine, nu știu, să spunem că astfel de subiecte sunt mai des ...


Asemenea vulnerabilități sunt foarte frecvente în dezvoltatorii de web novici. Nu l-am găsit pe Habr, dar un hubro-utilizator mi-a susținut că este. Am repetat experimentul, dar nu sa întâmplat nimic - probabil închis.

Pentru a proteja, trebuie să filtrați citate și alte caractere speciale care ar putea viola logica interogării dvs. De asemenea, când aveți un număr, asigurați-vă că îl aduceți la număr.


Dacă Bubburuum și-a început cucerirea Habr-ului dintr-o mașină super-flash, atunci am intrat în utilizatorii TOP5 pentru o noapte datorită vulnerabilității CSRF pe care am descoperit-o anul trecut.

Acum am scris acest lucru pentru că a descoperit recent un altul la fel și ea ar putea invita virtualchikov meu Habr prin utilizatorii care folosesc Internet Explorer 6. Este de remarcat faptul că un astfel nu a fost mult.

Pentru a vă proteja, trebuie să inserați în fiecare formular sau o solicitare importantă un csrf-token special, pe care atacatorul nu ar trebui să-l cunoască. Unele cadre inserate automat în acest formular.

Articole similare