Cum se utilizează sqlmap

Citirea și scrierea fișierelor prin injecție SQL

În SQL, există o echipă care scrie conținutul, de exemplu, celulele de pe hard disk. Când SQL-injectare, putem face modificări în baza de date, de exemplu, de a crea o celulă de tabel, în care ne scrie sistemul nostru de fișiere, apoi utilizați resetează comanda SQL conținutul hard disk-ul sistemului țintă într-un fișier cu orice nume. Acest proces este automatizat sqlmap pentru a înregistra un fișier arbitrar la sistemul afectat utilizat opțiunile --file-scriere și --file-dest. După primele opțiuni pe care trebuie să specificați fișierul de pe sistemul local, pe care doriți să înregistrați la un sistem afectat la distanță. După opțiunea --file-dest trebuie să specifice calea absolută corectă a fișierului salvat.







Pentru a afla căile absolute pe server, puteți utiliza diferite tehnici:

  • rula Nmap pentru a determina versiunea a sistemului de operare. În diverse OS are un director implicit diferit. De exemplu, în Debain (Ubuntu) este / var / www / sau / var / www / html /. Pe Windows, acest lucru poate fi un director C: \ Apache24 \ htdocs \, C: / xampp / htdocs / C: / wamp / www / C: / Inetpub / wwwroot /, C: \ server \ date \ htdocs \ sau alta. De asemenea, dacă ați determinat tipul de sisteme de operare vulnerabile, puteți utiliza dosare pe care trebuie să existe, de exemplu, C: \ Windows \ Temp \ etc
  • căutați erori în site-urile web care dezvăluie căi absolute, de exemplu:

Pentru a putea scrie un fișier la un sistem la distanță, ar trebui să existe imediat mai mulți factori favorabili:

  • Comanda SQL care scrie pe disc nu trebuie blocată
  • serverul SQL trebuie să aibă permisiunea de scriere
  • Trebuie să cunoașteți calea absolută și să aveți acces la scriere în directorul specificat

În general, toate condițiile sunt foarte rar îndeplinite și este posibil să se efectueze cu succes acest atac.

Executarea comenzilor arbitrare de sistem de operare

Pentru aceasta, opțiunile sunt: ​​-os-cmd și -os-shell. Primul trimite o comandă care se execută pe serverul vulnerabil, iar al doilea simulează shell-ul real, cu suport pentru autocompletarea TAB. Trebuie să specificați limba de programare folosită pe server (ASP, ASP.NET, JSP sau PHP), precum și calea absolută către directorul la care există drepturi de scriere. Ca și încărcarea fișierelor, acest atac nu funcționează întotdeauna.

Modificarea datelor într-o bază de date

Se recomandă studierea articolului "Învățarea MySQL / MariaDB pentru începători". Comenzile SQL trebuie cunoscute atât pentru interogările bazelor de date, cât și pentru înțelegerea esenței injecțiilor SQL.







Pentru a efectua modificări în baza de date, există opțiuni - sql-query și -sql-shell. Dacă doriți să efectuați o interogare SQL arbitrară la sistemul de gestionare a bazelor de date utilizând comanda SELECT, atunci nu există nicio problemă. Dar dacă doriți să utilizați comenzi precum DROP, UPDATE, INSERT, trebuie să știți despre interogarea stivuită. Pur și simplu, aceasta este capacitatea de a executa mai multe comenzi la un moment dat, separându-le unul de celălalt cu un punct și virgulă.

Parametrul este introdus în parametru

Aceasta șterge (DROP) tabela de membri imediat după prima interogare SQL.

Trebuie să știți despre stiva de solicitări, deoarece nu toate tehnologiile aplicațiilor web o acceptă. De exemplu, PHP nu suportă o stivă de interogări atunci când DBMS este MySQL, dar o acceptă atunci când DBMS este PostgreSQL.

Uitați-vă la următorul tabel:

Cum se utilizează sqlmap

Deoarece nu este trist, este pachetul de PHP - MySQL este cel mai comun. Ie În majoritatea cazurilor, nu vom putea modifica tabelele prin stivă de interogări.

Parole pentru utilizatorii bazei de date

În MySQL DBMS, parolele utilizatorilor, inclusiv root-ul, sunt stocate direct într-una din bazele de date sub forma unui hash. Aceasta este o bază de date numită mysql. utilizator de tabel. Hashul parolei poate fi stocat în coloane cu un nume diferit, de exemplu, în autentificare_string sau Parolă.

Exemplu de obținere a unei dump-uri din baza de date MySQL:

În aceste exemple, vom arunca (obține) câmpuri individuale:

Cum se utilizează sqlmap

Să ne uităm la linia:

  • 127.0.0.1 ne spune că accesul la bazele de date este posibil numai din rețeaua locală - nu va fi posibil să vă conectați de la distanță la serverul MySQL.
  • 263027ECC84AA7B81EA86B0EBECAFE20BC8804FC - aceasta este hash pe care doriți să rupă în, dacă vrem să aflăm parola.

Pentru hacking în Hashcat, să ne întoarcem la ajutorul său pentru a afla numărul hash:

pentru că Există mai multe opțiuni, trebuie să cunoaștem versiunea serverului MySQL. Pentru a face acest lucru, sqlmap are opțiunea -f.

Cum se utilizează sqlmap

Exemple de date primite:

Ie numărul de hash 300, compunem comanda hashcat pentru hacking:

Cum se utilizează sqlmap

Rezultat (consultați simbolurile după colon)

Parola necesară a fost cuvântul dojo.

concluzie

După cum puteți vedea, chiar și în laborator, tehnicile descrise nu sunt întotdeauna viabile. Cu toate acestea, este necesar să se facă un test pentru posibilitatea exploatării lor, deoarece, în caz de noroc, acestea permit să se facă un progres semnificativ în testarea penetrării aplicațiilor web.

Articole similare:







Articole similare

Trimiteți-le prietenilor: