sqlmap snydeark
SQLMap er et gratis værktøj, der tjekker på database sårbarheder . Hvis du driver et websted, er du sårbar over for en række SQL-baserede hackerangreb, der kan kompromittere den database, der ligger bag mange webstedsfunktioner. Hvis hackere kan bryde ind i dit netværk og inficere et slutpunkt, kan de også bruge SQL-injektionsteknikker til at kompromittere de databaser, der understøtter back-office funktioner .
Din database er kernen i dit virksomhedsinformationssystem. Det driver datadeling i ERP-systemer og butikker følsomme data , såsom kunderegistre og omsætningsoplysninger. For fuldt ud at forstå potentiel sårbarhed på dette område skal du vide, hvad et SQL-injektionsangreb er.
SQL-injektionsangreb
SQL er Struktureret forespørgselssprog . Det er det sprog, som programmer bruger til at få adgang til data i en relationel database . Sproget indeholder også kommandoer til at opdatere eller slette data i databasetabeller.
For slutbrugere er adgangen til en database via en formular, som enten vil være på en webside eller i frontenden af et stykke forretningssoftware. Feltet, hvor du indtaster en forespørgsel på en Google-side, er et eksempel på dette. Koden bag skærmen tager det input, som brugerne indtaster i feltet, og pakker det ind i en SQL-forespørgsel. Dette bliver derefter sendt til databasen for at udtrække matchende poster.
Hackere har opdaget måder at indsætte en fuld SQL-sætning eller en klausul af en sætning i et inputfelt. Dette kan narre forespørgselsbehandlingsmekanismerne, der er indlejret i formularen, og sende en helhed SQL instruktion videre til databasen i stedet for at indsende input som en forespørgselsværdi.
Denne snyd kaldes ' SQL-injektion ” og det kan give hackere fuld adgang til din database og omgå de kontroller, der er indbygget i kodningen af applikationen eller websiden, der indeholder inputfeltet.
SQL-injektionsangreb kan gøre det muligt for hackere at stjæle hele databasen eller opdatere værdier. Muligheden for at ændre data i en database gør det muligt for hackere at stjæle penge . Forestil dig, hvis en kunde var i stand til at ændre saldoen på en konto fra et negativt beløb til et positivt beløb. I automatiserede systemer ville dette udløse en betaling, og hackerne kunne stikke af med disse penge, før nogen i virksomheden bliver opmærksomme på fejlen.
Se også: Bedste SQL Server-overvågningsværktøjer
Klassificering af SQL-injektionsangreb
Det Åbn Web Application Security Project (OWASP) opretter en liste over de 10 bedste systemsårbarheder, der betragtes som den definitive liste over svagheder, man skal kigge efter. Sårbarhedsscannere lover at tjekke for OWASP Top 10 . SQL Injection er den øverste trussel opført af OWASP. Organisationen opdeler denne kategori i fire typer.
- Klassisk SQL-injektion
- Blind eller Inference SQL Injection
- DBMS-specifik SQL-injektion
- Sammensat SQL-injektion
Disse kategorier er opdelt yderligere efter branchen. Et klassisk SQL Injection-angreb er også kendt som en In-band angreb . Denne kategori omfatter to mulige metoder – fejlbaseret SQLI og unionsbaseret SQLI.
Sammensatte SQL Injection-angreb tilføjer en anden type hackerangreb til SQL Injection-aktiviteten. Disse er:
- Autentificeringsangreb
- DDoS-angreb
- DNS-kapring
- Cross-site scripting (XSS)
Af hensyn til korthed i denne vejledning – som er fokuseret på sqlmap – definitionen af disse angrebsstrategier vil ikke blive dækket her.
Kontrollerer for SQL-injektion sårbarheder
Sqlmap giver dig mulighed for at prøve de typer angreb, som hackere implementerer på databaser. Dette lader dig se, om dine systemer er det beskyttet mod angreb .
Hackere opfinder konstant nye angrebsstrategier. Men måden relationelle databaser og SQL fungerer på betyder, at der kun er så mange typer angreb, der vil fungere. Med andre ord er der altid nye angreb variationer over et tema . Hvis du har et værktøj, der kan sikre beskyttelse mod generiske angrebskategorier, kan du være sikker på, at du har afdækket alle mulige sårbarheder.
Et sqlmap-tjek forsøger et angreb i hver af en række kategorier - der er seks i alt. Hvis et af disse angreb lykkes , ved du, at du har et alvorligt problem, og en del af grænsefladen, der fronter din database, skal omskrives for at blokere det angreb.
Typerne af angreb, som sqlmap forsøger, er:
- Boolean-baseret blind SQL-injektion
- Tidsbaseret blind SQL-injektion
- Fejlbaseret SQL-injektion
- Unionsbaseret SQL-injektion
- Stablede forespørgsler
- Out-of-band angreb
Definitionerne, der bruges af sqlmap-udviklerne, knytter sig ikke nøjagtigt til de kategorier, der bruges af OWASP. Listen omfatter begge typer Klassisk SQL-injektion og begge typer Blind SQL-injektion .
Angrebsstrategien for stablede forespørgsler udført af sqlmap bør dække hvilke OWASP-udtryk DBMS-specifikke angreb . Den kombinerede angrebskategori af OWASP er ikke relevant for det SQL Injection-fokuserede sqlmap-detektionssystem.
Logisk, hvis du kan sikre, at dit system ikke er sårbart over for et SQL-injektionsangreb, vil det automatisk ikke være sårbart over for et kombineret angreb. Du bør dog bruge andet værktøjer til test af penne for at kontrollere, om dit websted er sårbart over for DDoS-angreb, XSS eller DNS-kapring. Alle systemer er permanent ansvarlige for autentificeringsangreb – du skal sikre en sikker identitets- og adgangsstyringsstrategi for at beskytte din virksomhed mod truslen fra autentificering cracking .
sqlmap-systemet kontrollerer arbejde med følgende DBMS'er:
MySQL | Microsoft SQL Server | Microsoft Access | MariaDB |
Oracle | PostgreSQL | IBM DB2 | SQLite |
Ildfugl | Sybase | SAP Max DB | Informix |
MemSQL | TiDB | KakerlakDB | HSQLDB |
H2 | MonetDB | Apache Derby | Apache Ignite |
Amazon rødforskydning | Lodret | McCoy | Snart |
høj base | MimerSQL | CrateDB | Greenplum |
Støvregn | Cubrid | InterSystems Cache | IRIS |
eXtremeDB | FrontBase | YugabyteDB | Virtuos |
Raima Database Manager |
Systemkrav til sqlmap
Du kan installere sqlmap på Windows , macOS , og Linux .
sqlmap-systemet er skrevet i Python, så du skal installere Python 2.6 eller nyere på din computer for at køre sqlmap. Den nuværende version i juli 2021 er 3.9.
For at finde ud af, om du har Python installeret, skal du på Windows åbne en kommandoprompt og indtaste python –version . Hvis du ikke har Python, vil du se en besked, der fortæller dig at skrive python igen uden parametre. Type python og dette åbner Microsoft Store med Python-pakken sat op til download. Klik på Få knappen og følg installationsinstruktionerne.
Hvis du har macOS type python –version . Hvis du får en fejlmeddelelse, skal du indtaste følgende kommandoer:
|_+_|I de linjer er $ repræsenterer systemprompten – skriv det ikke ind.
Hvis du har Linux, har du allerede Python installeret.
Installer sqlmap
Sådan installeres sqlmap:
- Gå til hjemmesiden for sqlmap-projektet på sqlmap.org .
- Hvis du har Windows, skal du klikke på Download .zip fil-knap. Hvis du har macOS eller Linux, skal du klikke på Download .tar.gz fil-knap.
- Pak den komprimerede fil ud.
Dit system vil automatisk navngive mappen det samme som den komprimerede fil. Dette er dog et meget langt navn, så vælg at have den nye mappe kaldet bare sqlmap. Det er lige meget, hvor på din computer du opretter den mappe.
Kører sqlmap
sqlmap-systemet er et kommandolinjeværktøj. Der er ikke en GUI-grænseflade til det. Så gå til kommandolinjen på din computer for at bruge sqlmap. Skift til sqlmap-biblioteket, som du oprettede for at køre værktøjet. Du behøver ikke at kompilere noget program.
Det program, du kører for at bruge sqlmap, hedder sqlmap.py. Det vil ikke køre, medmindre du tilføjer en mulighed til slutningen af programnavnet.
Indstillingerne for sqlmap er:
-u URL | Målwebadressen Format:-i 'http://www.target.com/path/file.htm?variable=1' |
-d DIREKTE | Forbindelsesstreng til direkte databaseforbindelse Format:-d DBMS://DATABASE_FILEPATHeller -d DBMS://BRUGER:PASSWORD@DBMS_IP:DBMS_PORT/DATABASE_NAME |
-l LOGFIL | Parse mål fra Burp eller WebScarab proxy logfil |
-m BULKFIL | Scan flere mål givet i en tekstfil Format:Filen skal indeholde en URL pr. linje |
-r ANMODNINGSFIL | Indlæs HTTP-anmodning fra en fil Format:Filen kan indeholde en HTTP- eller en HTTPS-transaktion |
-g GOOGLEDORK | Behandl Google-dark-resultater som mål-URL'er |
-c KONFIGFIL | Indlæs muligheder fra en INI-konfigurationsfil |
--guiden | En guidet henrettelsestjeneste |
--opdatering | Opdater sqlmap til den nyeste version |
--udrensning | Ryd sqlmap-datamappen |
--rense-output | Som ovenfor |
--afhængigheder | Tjek for manglende sqlmap-afhængigheder |
-h | Grundlæggende hjælp |
-hh | Avanceret hjælp |
-- version | Vis versionsnummeret |
Du kan ikke køre sqlmap uden en af disse muligheder. Der er mange andre muligheder og det er ofte nødvendigt at sætte flere muligheder i rækkefølge på en kommandolinje.
Et fuldt angreb kræver så mange muligheder og input, at det er nemmere at lægge alle disse muligheder i en fil og derefter kalde filen i stedet for at skrive dem alle ind. I dette scenarie er det en konvention at gemme alle mulighederne i en tekstfil med filtypenavnet .INI. Du vil inkludere denne liste over muligheder på kommandolinjen med -c-indstillingen efterfulgt af filnavnet. Denne metode fjerner gentagelse af indtastning af hele den lange kommando igen og igen for at tage højde for stavefejl eller formatfejl.
Flere sqlmap muligheder
Der er mange andre kontakter, som du kan tilføje til en sqlmap kommando. Indstillingsparametre, der er tegnbaserede, skal være omgivet af dobbelte anførselstegn (' '), numeriske parametre bør ikke anføres.
Af hensyn til kortheden i denne vejledning har vi præsenteret alle disse i en PDF-fil:
Klik på billedet ovenfor for at åbne det fulde sqlmap snydeark JPG i et nyt vindue, eller klik her for at downloade sqlmap-snydearketPDF .
Kører en SQL-injektionsangrebsscanning med sqlmap
Det store antal tilgængelige muligheder for sqlmap er skræmmende. Der er for mange muligheder at finde rundt i for at finde ud af, hvordan man danner et SQL-injektionsangreb. Den bedste måde at tilegne sig viden om, hvordan man udfører de forskellige typer angreb er at lære ved eksempel .
For at opleve, hvordan et sqlmap-testsystem forløber, prøv følgende testkørsel, hvor du erstatter webadressen på dit websted med markøren
Denne kommando vil udløse en gennemgang af alle sqlmap-procedurerne, hvilket giver dig muligheder i løbet af testen, mens den skrider frem.
Systemet vil vise starttidspunktet af testen. Hver rapportlinje inkluderer den tid, hver test gennemførte.
sqlmap-tjenesten vil test forbindelsen til webserveren og derefter scanne forskellige aspekter af webstedet. Disse attributter inkluderer webstedets standardtegnsæt, en kontrol for tilstedeværelsen af forsvarssystemer , såsom en webapplikations firewall eller systemer til registrering af indtrængen.
Den næste fase af testen identificerer det DBMS, der bruges til webstedet. Det vil forsøge en række angreb at undersøge sårbarheden af webstedets database. Disse er:
- Et GET-inputangreb – dette identificerer modtageligheden for klassiske SQLI- og XSS-angreb
- DBMS-specifikke angreb
- Boolean-baseret blind SQLI
- Systemet vil bede om et niveau og en risikoværdi. Hvis disse er høje nok, vil den køre en tidsbaseret blind SQLI
- Et fejlbaseret SQLI-angreb
- En UNION-baseret SQLI, hvis niveauet og risikoværdierne er høje nok
- Stablede forespørgsler
Som svar på bannerindstillingen, der blev brugt i denne kørsel, fuldfører sqlmap sin kørsel ved at hente databasebanneret . Til sidst skrives alle udtrukne data med forklaringer af deres betydning til en logfil .
Som du kan se, uden mange muligheder givet på kommandoen, vil sqlmap-systemet køre gennem en standardserie af angreb og vil tjekke med brugeren for beslutninger over testens dybde, efterhånden som testen skrider frem.
En lille ændring i kommandoen vil køre det samme batteri af test, men ved at bruge en STOLPE som en testmetode i stedet for en FÅ .
Prøv følgende kommando:
|_+_|Adgangskodeknækning med sqlmap
En ændring af kun ét ord i den første kommando, der blev brugt til det foregående afsnit, vil give dig en række tests for at se, om legitimationsstyringssystem af din database har svagheder.
Indtast følgende kommando:
|_+_|Igen skal du erstatte dit websteds URL med
Når du kører denne kommando, vil sqlmap starte en række tests og give dig en række muligheder undervejs.
sqlmap-kørslen vil prøve et tidsbaseret blind SQLI og derefter et UNION-baseret blindangreb. Det vil derefter give dig mulighed for at gemme kodeords-hash til en fil til analyse med et andet værktøj og giver derefter mulighed for et ordbogsbaseret angreb.
Tjenesterne vil prøve en række velkendte brugerkontonavne og cykle gennem en liste over ofte brugte adgangskoder mod hvert kandidatbrugernavn. Dette kaldes en ' klyngebombe ” angreb. Filpakken i sqlmap indeholder en fil med nyttelast til dette angreb, men du kan levere din egen fil i stedet.
Når sqlmap rammer en kombination af brugernavn og adgangskode, vil den vise den. Alle handlinger for kørslen bliver derefter skrevet til en logfil, før programmet afslutter sin kørslen.
Få en liste over databaser på dit system og deres tabeller
Information er magt, og hackere skal først vide, hvilke databaseforekomster du har på dit system for at hacke ind i dem. Du kan finde ud af, om disse grundlæggende oplysninger let kan tilgås af ubudne gæster med følgende kommando:
|_+_|Denne test vil omfatte tidsbaserede, fejlbaserede og UNION-baserede SQL-injektionsangreb. Det vil derefter identificere DBMS-mærket og derefter liste databasenavnene. De oplysninger, der udledes under testkørslen, skrives derefter til en logfil, efterhånden som programmet afsluttes.
Undersøg lidt nærmere og få en liste over tabellerne i en af disse databaser med følgende kommando.
|_+_|Indtast navnet på en af de databaseforekomster, du fik fra listen i den første forespørgsel i dette afsnit.
Denne testbatch omfatter tidsbaserede, fejlbaserede og UNION-baserede SQL-injektionsangreb. Det vil derefter liste navnene på de tabeller, der er i den angivne databaseinstans. Disse data skrives til en logfil, når programmet afsluttes.
Få indholdet af en af disse tabeller med følgende kommando:
|_+_|Erstat navnet på en af de tabeller, du har opdaget, med