SQL injection ce inseamna

13 iulie 2017
sql injection

sql injection

SQL injection una dintre cele mai perfide metode de hacking care exista la momentul actual. Ca sa intelegeti despre ce e vorba am sa va explic in cateva cuvinte si, asa cum v-am obisnuit, pe intelesul vostru.

Pentru inceput sa va explic ce e cu hackingul asta. Hackingul asa cum este el cunoscut are o conotatie urata, de obicei, adica, in mintea noastra cel care face hacking este cineva care sparge sisteme informatice.

Tot in conceptia generala cel care face hacking sparge sistemele informatice ca sa faca rau. Nu e chiar asa! Sunt mai multe tipuri de hackeri: sunt cei care intra si care vor sa faca rau distrugang sistemul, compromitand datele pentru profitul lui personal sau fun si sunt hackeri buni care testeaza sistemele si iti si rezolva niste probleme. Cei rai sunt Black Hat cei buni sunt White Hat. Cred ca faceti analogia.

Sitemele informatice pot fi sparte in mai multe moduri, general am sa va spun ca sunt 3 mari categorii pe care le stiu eu: 1. prin forta bruta, 2. prin inginerie sociala si 3. prin exploatarea de vulnerabilitati.

  1. Forta Bruta

Forta bruta inseamna ca incerci sa gasesti usernameul si parola prin incercari multiple bazate pe combinatii de litere, cifre si caractere. Principiul e simplu: ai alfabetul, cifrele si semnele care pot fi folosite, iar un computer incearca sa gaseasca combinatia potrivita din astea. Adica: incepe cu o combinatie o trimite la site, vede ce raspuns primeste si incearca urmatoarea si tot asa. Tinand cont ca sunt miliarde de combinatii, pentru a reduce numarul lor se folosesc tot felul de algortimi bazati pe disctionare, adica se incearca cele mai folosite cuvinte pe baza disctionarelor.

Iti trebuie putere mare de calcul sa faci asta in timp scurt, iar sistemele sunt, de obicei, protejate prin capcha sau prin blocare contului si ip-ului dupa un numare de incercari nereusite. Deci e cam istorie asta, dar se poate folosi cu succes la parole formate doar din cifre cu 4 cifre unde numarul de posibilitati se limiteaza drastic (acum ganditi-va cine are 4 cifre la parola si nu accepta mai mult).

De inginerie sociala am mai discutat asa ca nu o sa mai discut.

2.Prin exploatarea de vulnerabilitati.

Aici sunt 2 posibilitati: vulnerabilitati lasate deschise de programator, adica cele de care stie (cazul Microsoft cu wannacry si au mai fost cazuri de genul in istorie) si cele de care programatorul nu stie.

SQL injection, asa cum ii si spune numele presupune injectarea de cod malitios intr-o sistaxa SQL. Intr-un articol trecut in care discutam si despre ingineria sociala ca metoda de preluat accesul, va spuneam ca exista 2 metode de a trimite data: POST si GET. SQL injection se bazeaza mult pe trimiterea datelor prin GET. GET inseamna ca datele sunt trimise in corpul likului iar apoi sunt preluate de un script intr-o variabila, iar acea variabila este folosita, de obicei, pentru a face interogari in baza de date, adica se creaza un query care are acea variabila ca si conditie.

De exemplu: arata-mi toate articolele din categorie TELEVIZOARE (asta e variabila) in ordinea pretului (interogarea SQL nu are sintaxa asta, dar asta spune in cuvinte pe care oamenii le inteleg). De obicei varaibila TELEVIZOARE  este trimisa in link, injectare de cod malitios presupunand ca hackerul mai adauga o alta variabila care sa fie executata inpreuna cu varibila televizoare si care sa poata fi executata legitim in sintaza SQL. De exemplu sintaxa SQL pentru TELEVIZOARE va fi …..WHERE categorie=’TELEVIZOARE’, iar hackerul mai adauga o alta variabila care sa fie preluata prin GET impreuna cu telvizoare, iar ea poate arata ceva de genul: WHERE categorie=’TELEVIZOARE’ AND id>=’0′; id>=’0′ este o coditie tot timpul adevarata si va fi executata fara probleme in sintaxa SQL. Exemplu de mai sus o sa va intoarca acelasi lucru ca si cum nu ar fi id>=’0′, dar nu va dau alte sintaxe ca sa na va vina idei.

Tooluri pentru teste

Totusi, daca vreti sa va testati site-ul ca sa vedeti daca e protejat la SQL injection exista un tool automat care face asta, se cheama sqlmap si este scris in python. Va trebuie ceva cunostinte ca sa-l instalati (adica nu e la fel de simplu cu a instala un program in windows), dar odata instalat face teste de sql injection pe site si vede daca poate penetra sau nu si daca poate penetra intra. Atentie ca sunteti la limita legii daca folositi un astfel de soft si e recomndat sa-l folositi doar sa va testati site-ul sau blogul propriu.

Un astfel de tools exista deja instalat impreuna cu alte tooluri de hacking intr-o versiune de linux numita Kali linux, iar acolo sunt si tooluri de testare a penetrabilitatii pe retele wireless si altele. De obicei Kali linux este folosit de cei car efac hacking. ATENTIE! ca daca folositi astel de tooluri pe alte siteuri deja comiteti o infractiuni care e pedepsita de majoritatea tarilor lumii.

Ca si idee SQL Injection a fost folosita acum 1-2 ani de niste hackeri romani ca sa penetreze siteul Oracle, iar Oracle sunt cei mai buni dintre cei buni in baze de date si securitatea lor.

Protectii impotriva SQL injection exista, una dintre cea mai simpla metoda este verificarea varibilelor inainte de a fi introduse in queriuri sql ca acea variabila sa contina doar ce ce astepti tu sa contina si nu alt cod malitios, o alta varianta este trimiterea de variabila criptate prin GET (google o foloseste la scara larga) si decriptarea ei dupa preluare etc….

Acum ca aveti mai multe cunostiinte si stiti cum puteti fi compromisi pote veti reusi sa va protejati.

No Comments

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *