Linux: MySQL (#14)

Bine ați revenit, dragii mei green horn hackers!

Acest tutorial se va concentra pe bazele de date MySQL. Deși acest lucru nu este strict un tutorial Linux, MySQL este baza de date preferată pentru majoritatea distribuțiilor Linux. În plus, este cea mai utilizată bază de date din spatele aplicațiilor web.

Este esențial să înțelegem bazele MySQL înainte să trecem la spargerea bazelor de date MySQL și a aplicațiilor web ce utilizează MySQL (ce sunt literalmente mii). MySQL este o bază de date open source. Acesta este probabil motivul principal pentru care vom întâlni MySQL pe aproape orice distribuție Linux. După cum știți, Linux este deasemenea open-source și cu licență GPL.

Dezvoltată inițial de MySQL AB din Suedia în 1995, a fost achiziționată de Sun Microsystems în 2008, iar Sun Microsystems a fost apoi cumpărat de Oracle în 2009.

Deoarece Oracle este cel mai mare editor de software pentru baze de date, comunitatea open source are o anumită teamă, cu privire la angajamentul Oracle de a păstra MySQL open source. Ca urmare, există acum o nouă ,,furcă”a software-ului MySQL, numită Maria, care s-a angajat să păstreze acest soft, cât și versiunile sale ulterioare open source. Deoarece este gratuit, MySQL a devenit baza de date preferată pentru multe aplicații web. Câteva site-uri și aplicații ce o utilizează:

  • WordPress
  • Facebook
  • LinkedIn
  • Twitter
  • Kayak
  • Wikipedia
  • YouTube

Alte sisteme de management al conținutului (CMS), cum ar fi Joomla, Drupal și Ruby on Rails utilizează MySQL. Ați prins ideea. Dacă doriți să dezvoltați sau să atacați aplicații web, ar trebui să cunoașteți MySQL. Așadar, haideți să începem!


Pasul 1: Pornim MySQL

Din fericire, Kali Linux are instalat deja MySQL (dacă utilizați o altă distribuție, de obicei puteți descărca și instala MySQL din depozitul de software, așa cum am făcut eu). Să pornim serviciul MySQL.

 

Pasul 2: Ne logăm în MySQL

Acum, când serviciul MySQL este pornit, putem începe să îl folosim. În primul rând, trebuie să ne autentificăm.

Deschidem un terminal și tastăm:

  • mysql -u root -p

Ni se va solicita parola, care este ,,toor” în Kali Linux (dacă îmi aduc eu bine aminte). Poate diferi pe alte sisteme. Reținem că, deși numele de utilizator și parola pentru MySQL sunt identice cu numele de utilizator și parola Kali Linux, lucrul acesta nu se aplică neapărat și în cazul altor distribuții de Linux și MySQL. Numele de utilizator și parolele pentru sistemul de operare  (Ubuntu) și MySQL sunt separate și distincte.

Această sintaxă, mysql -u <username> -p, funcționează dacă încercăm să accesăm o bază de date MySQL pe site-ul nostru local. Această comandă implică utilizarea instanței MySQL pe localhost, dacă nu este dată numele de gazdă sau adresa IP. Pentru accesul la distanță (aici fac referire la un hacker), trebuie să furnizăm numele de gazdă sau adresa IP a sistemului care găzduiește baza de date MySQL, cum ar fi:

  • mysql -u root -p 192.168.1.101

Acest lucru ne va conecta la instanța MySQL de la adresa 192.168.1.101 și ne va solicita o parolă.

Aceasta deschide interfața de comandă MySQL ce ne oferă promptul mysql. Ca și server-ul SQL Microsoft, MySQL are o interfață GUI atât nativă (MySQL Workbench) cât și de la o parte terță (Navicat și TOAD pentru MySQL). Să ne uităm prima dată la interfața de comandă și apoi vom avansa la interfața GUI.

Ca hacker, interfața de comandă din terminal poate fi cea mai bună ocazie pentru exploatarea bazei de date MySQL, așa că ar trebui să ne concentrăm asupra acesteia. Este puțin probabil ca unui participant neautorizat la o bază de date să-i fie prezentată o interfață grafică ușor de folosit. 🙂

Reținem că acest ecran ne reamintește că toate comenzile se termină în “;” sau “\ g” (spre deosebire de Server-ul SQL Microsoft) și că putem obține ajutor prin tastarea help; sau \ h.



Acum că suntem logați ca systadmin (root), putem naviga fără obstacole prin baza de date. Dacă ne-am fi logat ca utilizator obișnuit, navigarea noastră ar fi limitată de permisiunile furnizate de administratorul de sistem pentru acel utilizator.

Pasul 3: Afișarea bazelor de date

Pentru că suntem conectați la baza de date MySQL ca root, următorul pas este să aflăm dacă există vreo bază de date care merită spartă. Comanda pentru găsirea bazelor de date este următoarea:

  • show databases;

Aha! Am găsit o bază de date care merită explorată. Se numește ,,carduridecreditclienti”. 🙂

Pasul 4: Conectarea la baza de date

Odată ce ne-am conectat la instanța MySQL, următorul pas este să ne conectăm la o anumită bază de date. În MySQL, ca și alte sisteme de gestionare a bazelor de date, ne putem conecta la baza de date de care suntem interesați folosind <numele bazei de date>. Deoarece acum știm că baza de date ce ne interesează este denumită ,,carduridecreditclienti”, tastăm pur și simplu:

  • use carduridecreditclienti;

După cum putem vedea, MySQL răspunde cu ,,Database changed”, indicând faptul că suntem acum conectați la baza de date ,,carduridecreditclienti”.

Bineînțeles, sper că este de la sine înțeles că ar trebui să utilizăm numele de bază adecvat în baza de date ,,carduridecreditclienti“. Este puțin probabil ca un administrator de baze de date să fie atat de amabil și să numească o baza de date cu un nume atât de ușor de recunoscut, astfel încât poate fi necesar să facem un pic de explorare pentru a găsi baza de date ce ne interesează.

Pasul 5: Găsirea tabelelor

Suntem conectați la baza de date ,,carduridecreditclienti” și putem explora prin aceasta, sau putem vedea ce ar putea fi în acea bază de date. Putem afla ce tabele sunt aici prin tastarea:

  • show tables;

În captura de ecran de mai sus, vedem că această bază de date are doar două tabele numite ,,mastercard” și ,,visa”. În general, bazele de date vor avea numeroase tabele în ele, dar suntem norocoși aici, deoarece ne putem concentra atenția asupra acestor tabele unice pentru a extrage ceea ce ne interesează



Pasul 6: Descriem tabelul pentru a-i descoperi structura

Deoarece ne putem concentra eforturile pe aceast tabel, va trebui să înțelegem structura acestuia. În tutorialele ulterioare – când spargem o bază de date – vom vedea că înțelegerea structurii este critică pentru un hack de succes.

Putem vedea structura tabelului, tastând:

  • describe mastercard;

MySQL răspunde cu o informaie critică asupra structurii tabelului nostru de interes. Putem vedea fiecare câmp și tip de date (varchar sau int), indiferent dacă va accepta cheia, sau valorile implicite.

Pasul 7: Selectarea datelor

Pentru a vedea efectiv datele din tabel, putem folosi comanda SELECT. Comanda SELECT cere să cunoaștem:

  1. Tabelul pe care dorim să-l vizualizăm.
  2. Coloanele din tabelul pe care dorim să-l vizualizăm.

Utilizăm formatul:

  • SELECT <columns> FROM <table>

O scurtătură utilă: Dacă dorim să vedem date din toate coloanele, putem folosi asterixul (“*”) în loc să introducem fiecare nume de coloană. Deci, pentru a vedea o cantitate de date din tabelul de carduri, introducem:

  • SELECT * FROM mastercard;

 

Pasul 8: Exportarea datelor

Acum, când știm unde sunt datele, trebuie să le exportăm pentru a putea fi utilizate. MySQL are o comandă numită mysqldump. În general, este folosită pentru a crea o copie de rezervă a datelor. Puteți rula din orice terminal, dar veți avea nevoie de:

  1. Un username (root)
  2. Parola pentru acel username (toor)
  3. Numele bazei de date din care dorim să extragem date (carduridecreditclienti)
  4. Tabelul din baza de date dorită (mastercard)
  5. Directorul în care dorim să exportăm (/tmp)

Deci, pentru a ,,arunca” (dump) datele din linia de comandă, tastăm pur și simplu:

  • mysqldump –tab = /tmp –user root -p carduridecreditclienti mastercard;

Aceasta va trimite datele către directorul desemnat, în acest caz / tmp.


Succes!

Acum, am dobândit cu succes informații cheie și valoroase din această bază de date.

 

Deoarece baza de date MySQL este critică pentru aplicațiile web, voi mai realiza câteva tutoriale pe tema aceasta. Tutoriale ce ne vor ajuta să spargem cu foarte mare ușurință bazele de date.

Continuați să reveniți pe Blackweb, dragii mei greenhorn hackers, pentru mai multe tutoriale despre hacking și despre elementele de bază ale Linux-ului, ce ar fi bine să le cunoașteți, în drumul vostru de a deveni niște hackeri talentați.

Până data viitoare, să ne citim cu bine! 🙂



0 0 vote
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments