Ca tot cineva m-a intrebat odata cum se face injectarea unei baze de date SQL... Sa discutam putin ... ce este o pagina web ce apeleaza la baze de date SQL ? Ei bine... o pagina de date ce foloseste baze de date SQL este in primul rand o pagina dinamica, ce foloseste useri pentru a avea acces in interior (de ex: forumul hackteam.3xforum.ro -- doar ca aici, este un subdomeniu la 3xforum.ro, iar bazele de date se afla pe serverul respectiv). Pentru a folosi SQL injection, trebuie sa aveti habar de 2 chestii: PHP sau/si ASP si comenzi MySQL (care seamana al dracului de bine cu limbajul natural)..
Una dintre cele mai grave probleme de securitate web este SQL injection. Simplu spus, este posibilitatea executarii de comenzi SQL prin alterarea parametrilor paginilor. Problema este grava pentru ca altereaza date permanent salvate in baze de date care pot varia de la caz la caz: nume, parole, date confidentiale, chiar credit carduri, etc.
SQL injection apare datorita neverificarii parametrilor utilizati in comenzi SQL. De exemplu sa presupunem ca avem (pagina.xxx):
- PHP:
- ASP:
<% ...
conexiune.Execute "SELECT * FROM Tabela WHERE id=" & Request.QueryString("id"
... %>
Pentru aceste cazuri daca cineva in loc de pagina.xxx?id=1 cheama
pagina.xxx%3Fid%3D1%3BDELETE+%2A+FROM+Tabela
ceea ce inseamna
pagina.xxx?id=1;DELETE * FROM Tabela
surpriza o sa fie de proportii.
In acest fel se pot executa si alte comenzi SQL nu doar DELETE.
Intervin cateva probleme:
- Trebuie cunoscut numele tabelelor sau campurilor sau gasite comenzi SQL care nu depind de numele tabelelor (folosit la modul general sau tabelele standard ale bazei de date)
- Pagina web sa nu faca nici un fel de verificari a parametrilor.
Dupa cum se poate vedea toata aceasta problema dispare daca avem
- ASP:
<% ...
conexiune.Execute "SELECT * FROM Tabela WHERE id=" & val(Request.QueryString("id")
... %>
Mai trebuie facuta o observatie: parametri alterati pot veni nu doar din URL (GET) ci si POST sau cookie sau chiar valori inregistrate in baza de date pt. diverse informatii (semnatura alterata, adresa, etc.)
...Atata stiu, atata spun ...:razz: