|
|
Publisert på 17.06.2023 11:10:55
|
|
|
|

Krav: Bruk SQLMAPs åpne kildekode-penetrasjonstestverktøy for å teste nettsidegrensesnitt for injeksjonsrisiko. SQL-injeksjon betyr at webapplikasjonen ikke vurderer legitimiteten til brukerens inputdata eller at filtreringen ikke er streng, og angriperen kan legge til flere SQL-setninger på slutten av spørringssetningen som er definert på forhånd i webapplikasjonen, og implementere ulovlige operasjoner uten administratorens viten, for å lure databaseserveren til å utføre uautoriserte vilkårlige spørringer, for å få tilgang til tilsvarende datainformasjon. Kort sagt, det er detBackend-grensesnittet kjører SQL-setninger ved å sette sammen de forespurte parameterne。
Anmeldelse:
sqlmap er et åpen kildekode-verktøy for penetrasjonstesting som automatiserer prosessen med å oppdage og utnytte SQL-injeksjonssårbarheter og overta databaseservere. Den leveres med en kraftig deteksjonsmotor, mange nisjefunksjoner fra den ultimate penetrasjonstesteren, og et bredt spekter av switcher, inkludert databasefingeravtrykk, henting av data fra databaser, tilgang til det underliggende filsystemet og utførelse av kommandoer på operativsystemet via utenom-bånd-tilkoblinger.
SQLMAP fungerer rett ut av boksen og fungerer på alle plattformerPython-versjoner 2.6, 2.7 og 3.x。
SQLMAP-miljøkonstruksjon
Python-nedlasting:Innloggingen med hyperkoblingen er synlig.
SQLMAP åpen kildekode-adresse:Innloggingen med hyperkoblingen er synlig. SQLMAP-kommandodokumentasjon:Innloggingen med hyperkoblingen er synlig.
Først må datamaskinen installere Python (utelatt), og deretter bruke git-kommandoen for å laste ned kildekoden, som følger:
Alternativer:
-h, --hjelp Vis grunnleggende hjelpemelding og avslutt -----Vis grunnleggende hjelpemelding og avslutt -hh Vis avansert hjelpemelding og avslutt----- --versjon for å se versjonsnummeret----------- Showprogrammets versjonsnummer og avslutning -v VERBOSE detaljnivå (0-6, standard 1) --Ordrikhetsnivå: 0-6 (standard 1)
Mål:
Minst ett av følgende alternativer må settes for å bestemme mål-URL-en, nemlig: Minst ett av følgende alternativer må inkluderes i SQLMap-operasjonskommandoen for å bruke den normalt
-d DIRECT Connection-streng for direkte databasetilkobling------------------- -u URL, --url=URL Mål-URL --------------------- Mål-URL (f.eks. "http://www.site.com/vuln.php?id=1") -l LOGFILE Parse-mål(er) fra Burp- eller WebScarab-proxy-loggfil ---- målet fra loggfilen til en Burp eller annen proxy -x SITEMAPURL parser målet fra filen til remote sitemap(.xml --Parse target(s) fra remote sitemap(.xml)-filen Skann flere mål gitt i en tekstfil -------- BULKFILE -r REQUESTFILE Last HTTP-forespørsel fra en fil ---------------Last HTTP-forespørsel fra en fil -g GOOGLEDORK Behandle Google Dork-resultater som mål-URLer--- -c CONFIGFILE Last inn valg fra en konfigurasjons-INI-fil -------------- Lastevalg fra en konfigurasjons-INI-fil
Anmodning:
Følgende alternativer spesifiserer hvordan man kobler til destinasjons-URL-en
--metode=METODE Tving bruk av gitt HTTP-metode (f.eks. PUT------------------ --data=DATA Datastreng som skal sendes gjennom POST ved bruk av POST-metoden------------------ --param-del=PARA.. Sett symbolet for å skille parameterverdier-------------------- Tegn brukt for å splitte parameterverdier --cookie=COOKIE spesifiserer HTTP-cookie-verdien ---------------------- HTTP-cookie-header-verdien --cookie-del=COO.. Tegn brukt for å splitte informasjonskapselverdier------------------ Når du tester et injeksjonspunkt med SQLMAP, kan du bruke -v x-parameteren for å spesifisere kompleksiteten til ekkoinformasjonen, som varierer fra [0~6] til 7 nivåer, med standard 1.
0: Kun python-feil vises sammen med kritisk informasjon. 1: Vis både grunnleggende informasjon og advarselsinformasjon. (standard) 2: Vis feilsøkingsinformasjonen samtidig. 3: Injisert nyttelast vises samtidig. 4: Vis HTTP-forespørsler samtidig. 5: Vis HTTP-svarheaderen samtidig. 6: Vis HTTP-svarsiden samtidig.
ASP.NET Oppsett av kjerneinjeksjonsmiljø
Lag et nytt webprosjekt med ASP.NET Core, skriv et grensesnitt med injeksjon, og kildekoden er som følger:
Testgrensesnitt:
Vanlig brukte penetrasjonstester
Oppramse DBMS-databaser
Og bruk SQL Server Profile for å fange kjøringen av SQL, som vist i følgende figur:
velg * fra [Brukere] hvor [Brukernavn] = 'itsvse' UNION ALL SELECT NULL,NULL,CHAR(113)+CHAR(98)+CHAR(122)+CHAR(118)+CHAR(113)+(VELG navn FRA master.. sysdatabases FOR JSON AUTO, INCLUDE_NULL_VALUES)+CHAR(113)+CHAR(113)+CHAR(118)+CHAR(120)+CHAR(113)-- yHIm'
Opprams tabellene til den angitte databasen
Kommandoen er som følger:
For komplekse HTTP-forespørsler kan duvia -r-parameteren(Laster HTTP-forespørsler fra filer,Bruk verktøyet Burp Suite for å fange opp HTTP-pakkforespørsler) for å laste den opprinnelige HTTP-forespørselen fra en tekstfil. Dette lar deg hoppe over bruk av mange andre alternativer (f.eks. informasjonskapselinnstillinger, publiserte data osv.).
SQLMAP er kraftig, se dokumentasjonen for mer avanserte funksjoner. (Slutt)
|
Foregående:EF 6 kjører native SQL-setninger, parameterinjeksjonsproblemerNeste:[Overfør] til MySQL Avansert: optimaliser tabellkommandoen
|