SQL -indsprøjtning - SQL injection
SQL-injektion er en kodeinjektionsteknik , der bruges til at angribe datadrevne applikationer, hvor ondsindede SQL- sætninger indsættes i et indtastningsfelt til udførelse (f.eks. For at dumpe databaseindholdet til angriberen). SQL -indsprøjtning skal udnytte en sikkerhedsrisiko i en applikations software, for eksempel når brugerinput enten er forkert filtreret efter streng -letter -Escape -tegn, der er integreret i SQL -sætninger, eller brugerinput ikke er stærkt skrevet og uventet udført. SQL injektion er mest kendt som et angreb vektor til hjemmesider, men kan bruges til at angribe enhver type SQL database.
SQL -injektionsangreb giver angribere mulighed for at forfalde identitet, manipulere med eksisterende data , forårsage afvisningsproblemer som f.eks. Annullering af transaktioner eller ændring af saldi, tillade fuldstændig afsløring af alle data på systemet, ødelægge dataene eller gøre dem på anden måde utilgængelige og blive administratorer af databaseserver.
I en undersøgelse fra 2012 blev det observeret, at den gennemsnitlige webapplikation modtog fire angrebskampagner om måneden, og detailhandlere modtog dobbelt så mange angreb som andre industrier.
Historie
De første offentlige diskussioner om SQL -injektion begyndte at dukke op omkring 1998; for eksempel en artikel fra 1998 i Phrack Magazine .
Form
SQL -indsprøjtning (SQLI) blev af Open Web Application Security Project betragtet som en af de 10 mest sårbare webapplikationer i 2007 og 2010 . I 2013 blev SQLI bedømt som nummer et angreb på OWASP top ti. Der er fire hovedunderklasser af SQL-injektion:
- Klassisk SQLI
- Blind eller Inference SQL -indsprøjtning
- Databasestyringssystem -specifik SQLI
- Sammensat SQLI
- SQL -indsprøjtning + utilstrækkelig godkendelse
- SQL -injektion + DDoS -angreb
- SQL -indsprøjtning + DNS -kapring
- SQL -indsprøjtning + XSS
Den Storm Worm er en repræsentation af Blandet SQLi.
Denne klassificering repræsenterer SQLI -tilstanden og respekterer dens udvikling indtil 2010 - yderligere forfining er i gang.
Tekniske implementeringer
Forkert konstruerede SQL -sætninger
Denne form for injektion er afhængig af, at SQL -sætninger består af både data, der bruges af SQL -sætningen, og kommandoer, der styrer, hvordan SQL -sætningen udføres. For eksempel er strengen ' ' i SQL -sætningen data, og fragmentet er et eksempel på en kommando (værdien er også data i dette eksempel).
select * from person where name = 'susan' and age = 2susanand age = 22
SQL -injektion opstår, når specielt udformet brugerinput behandles af det modtagende program på en måde, der gør det muligt for input at forlade en datakontekst og indtaste en kommandokontekst. Dette gør det muligt for angriberen at ændre strukturen i SQL -sætningen, der udføres.
Som et enkelt eksempel kan du forestille dig, at dataene ' susan' i ovenstående erklæring blev leveret af brugerinput. Brugeren indtastede strengen ' susan' (uden apostroferne) i et tekstformatfelt i webformular, og programmet brugte string -sammenkædningssætninger til at danne ovenstående SQL -sætning ud fra de tre fragmenter , brugerinput af ' ' og .
select * from person where name='susan' and age = 2
Forestil dig nu, at susanangriberen kom ind i stedet for at indtaste ' ' .
' or 1=1; --
Programmet vil bruge den samme streng sammenkædningsmetode med de 3 fragmenter af , brugerens input af og og konstruere sætningen . Mange databaser ignorerer teksten efter '-' strengen, da dette betegner en kommentar. Strukturen i SQL -kommandoen er nu, og dette vil vælge alle personrækker frem for kun dem, der hedder 'susan', hvis alder er 2. Angriberen har formået at lave en datastreng, der forlader datakonteksten og indtastede en kommandokontekst.
select * from person where name='' or 1=1; --' and age = 2select * from person where name='' or 1=1; -- and age = 2select * from person where name='' or 1=1;
Et mere komplekst eksempel præsenteres nu.
Forestil dig, at et program opretter en SQL -sætning ved hjælp af følgende strengtildelingskommando:
var statement = "SELECT * FROM users WHERE name = '" + userName + "'";
Denne SQL -kode er designet til at trække optegnelserne over det angivne brugernavn fra dets brugertabel. Men hvis variablen "userName" er udformet på en bestemt måde af en ondsindet bruger, kan SQL -sætningen gøre mere end kodeforfatteren havde til hensigt. For eksempel at angive variablen "userName" som:
' OR '1'='1
eller bruge kommentarer til endda at blokere resten af forespørgslen (der er tre typer SQL -kommentarer). Alle tre linjer har et mellemrum for enden:
' OR '1'='1' --
' OR '1'='1' {
' OR '1'='1' /*
gengiver et af følgende SQL -sætninger efter modersproget:
SELECT * FROM users WHERE name = '' OR '1'='1';
SELECT * FROM users WHERE name = '' OR '1'='1' -- ';
Hvis denne kode skulle bruges i godkendelsesproceduren, kunne dette eksempel bruges til at tvinge valget af hvert datafelt (*) fra alle brugere frem for fra et specifikt brugernavn, som koden var tiltænkt, fordi evalueringen af '1' = '1' er altid sandt.
Den følgende værdi af "brugernavn" i nedenstående sætning ville medføre sletning af "brugere" -tabellen samt valg af alle data fra "brugerinfo" -tabellen (i det væsentlige afsløre oplysninger om hver bruger) ved hjælp af et API, der tillader flere udsagn:
a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't
Dette input gengiver den sidste SQL -sætning som følger og specificeret:
SELECT * FROM users WHERE name = 'a';DROP TABLE users; SELECT * FROM userinfo WHERE 't' = 't';
Mens de fleste SQL -serverimplementeringer tillader, at flere udsagn eksekveres med et opkald på denne måde, tillader nogle SQL API'er, f.eks. PHP 's mysql_query()funktion, dette ikke af sikkerhedsmæssige årsager. Dette forhindrer angribere i at injicere helt separate forespørgsler, men forhindrer dem ikke i at ændre forespørgsler.
Blind SQL -indsprøjtning
Blind SQL -indsprøjtning bruges, når en webapplikation er sårbar over for en SQL -indsprøjtning, men injektionens resultater ikke er synlige for angriberen. Siden med sårbarheden er muligvis ikke en, der viser data, men vil blive vist forskelligt afhængigt af resultaterne af en logisk sætning, der er injiceret i den legitime SQL -sætning, der kaldes til den side. Denne type angreb er traditionelt blevet betragtet som tidskrævende, fordi et nyt udsagn skulle udarbejdes for hver bit, der blev genoprettet, og afhængigt af dets struktur kan angrebet bestå af mange mislykkede anmodninger. Nylige fremskridt har gjort det muligt for hver anmodning at gendanne flere bits, uden mislykkede anmodninger, hvilket muliggjorde mere konsekvent og effektiv udtrækning. Der er flere værktøjer, der kan automatisere disse angreb, når sårbarhedens placering og målinformationen er blevet fastlagt.
Betingede svar
En type blind SQL -indsprøjtning tvinger databasen til at evaluere en logisk erklæring på en almindelig applikationsskærm. Som et eksempel bruger et boganmeldelseswebsted en forespørgselsstreng til at bestemme hvilken boganmeldelse, der skal vises. Så URL'en https://books.example.com/review?id=5 ville få serveren til at køre forespørgslen
SELECT * FROM bookreviews WHERE ID = '5';
hvorfra det ville befolke gennemgang side med data fra revisionen med ID 5, der er lagret i tabellen bookreviews. Forespørgslen sker fuldstændigt på serveren; brugeren kender ikke navnene på databasen, tabellen eller felterne, og brugeren kender heller ikke forespørgselsstrengen. Brugeren ser kun, at ovenstående URL returnerer en boganmeldelse. En hacker kan indlæse webadresserne og , hvilket kan resultere i forespørgsler
https://books.example.com/review?id=5 OR 1=1https://books.example.com/review?id=5 AND 1=2
SELECT * FROM bookreviews WHERE ID = '5' OR '1'='1';
SELECT * FROM bookreviews WHERE ID = '5' AND '1'='2';
henholdsvis. Hvis den originale anmeldelse indlæses med "1 = 1" webadressen, og en tom eller fejlside returneres fra "1 = 2" webadressen, og den returnerede side ikke er blevet oprettet for at advare brugeren, er input ugyldigt eller i andre ord, er blevet fanget af et input -test script, er webstedet sandsynligvis sårbart over for et SQL -injektionsangreb, da forespørgslen sandsynligvis er bestået med succes i begge tilfælde. Hackeren kan fortsætte med denne forespørgselsstreng, der er designet til at afsløre versionsnummeret på MySQL, der kører på serveren:, hvilket viser boganmeldelsen på en server, der kører MySQL 4, og en blank eller fejlside ellers. Hackeren kan fortsætte med at bruge kode inden for forespørgselsstrenge for at nå deres mål direkte eller hente flere oplysninger fra serveren i håb om at opdage en anden angrebsvej.
https://books.example.com/review?id=5 AND substring(@@version, 1, INSTR(@@version, '.') - 1)=4
Anden ordens SQL -indsprøjtning
Anden ordens SQL -indsprøjtning sker, når indsendte værdier indeholder ondsindede kommandoer, der gemmes i stedet for at blive udført med det samme. I nogle tilfælde kan applikationen muligvis kode en SQL -sætning korrekt og gemme den som en gyldig SQL. Derefter kan en anden del af den applikation uden kontrolelementer til beskyttelse mod SQL -injektion muligvis udføre den lagrede SQL -sætning. Dette angreb kræver mere viden om, hvordan indsendte værdier senere bruges. Automatiserede webapplikationssikkerhedsscannere ville ikke let opdage denne type SQL -indsprøjtning og skal muligvis instrueres manuelt i, hvor der skal kontrolleres for bevis for, at det er forsøgt.
Afbødning
En SQL -indsprøjtning er et velkendt angreb og let forhindret ved enkle foranstaltninger. Efter et tilsyneladende SQL -indsprøjtningsangreb på TalkTalk i 2015 rapporterede BBC, at sikkerhedseksperter var chokerede over, at et så stort firma ville være sårbart over for det.
Object Relational Mappers
Udviklere kan bruge ORM-rammer såsom Hibernate til at oprette databaseforespørgsler på en sikker og udviklervenlig måde. Da databaseforespørgsler ikke længere er konstrueret som strenge, er der ingen fare for en sårbarhed ved injektion.
Firewalls til webapplikationer
Selvom WAF -produkter som ModSecurity CRS ikke kan forhindre SQL -injektionssårbarheder i at snige sig ind i en kodebase, kan de gøre opdagelse og udnyttelse betydeligt mere udfordrende for en angriber.
Opdagelse
SQL -indsprøjtningsfiltrering fungerer på samme måde som spamfiltre via e -mail. Databasefirewalls registrerer SQL -injektioner baseret på antallet af ugyldige forespørgsler fra værten, tilstedeværelsen af OR- og UNION -blokke inde i anmodningen eller andre egenskaber.
Parameteriserede udsagn
Med de fleste udviklingsplatforme kan der bruges parameteriserede udsagn, der arbejder med parametre (undertiden kaldet pladsholdere eller bindingsvariabler ) i stedet for at integrere brugerinput i sætningen. En pladsholder kan kun gemme en værdi af den givne type og ikke et vilkårligt SQL -fragment. Derfor ville SQL -indsprøjtningen simpelthen blive behandlet som en mærkelig (og sandsynligvis ugyldig) parameterværdi. I mange tilfælde er SQL -sætningen rettet, og hver parameter er en skalar , ikke en tabel . Brugerinputet tildeles derefter (bundet) til en parameter.
Let at sige, ved hjælp af parametriserede forespørgsler kan helt sikkert forhindre SQL -indsprøjtning. Dette betyder hovedsageligt, at dine variabler ikke er forespørgselsstrenge, der accepterer vilkårlige SQL -input, men nogle parametre for givne typer er absolut nødvendige. Parameteriserede forespørgsler kræver, at udvikleren definerer al koden. Derfor, uden parameteriserede forespørgsler, kunne enhver sætte enhver form for SQL -kode i feltet og få databasen slettet. Men hvis parametrene skulle indstilles til '@brugernavn', ville personen kun kunne indtaste et brugernavn uden nogen form for kode.
Håndhævelse på kodningsniveau
Brug af objekt-relationelle kortlægningsbiblioteker undgår behovet for at skrive SQL-kode. ORM-biblioteket vil i virkeligheden generere parameteriserede SQL-sætninger fra objektorienteret kode.
Undslippe
En populær, men fejlagtig og i sidste ende dømt måde at forhindre injektioner på er at forsøge at undslippe alle tegn, der har en særlig betydning i SQL. Manualen til et SQL DBMS forklarer, hvilke tegn der har en særlig betydning, hvilket gør det muligt at oprette en omfattende sortliste over tegn, der har brug for oversættelse. For eksempel skal hver forekomst af et enkelt citat ( ') i en parameter erstattes af to enkelte anførselstegn ( '') for at danne en gyldig SQL -streng bogstavelig. For eksempel er det i PHP normalt at undslippe parametre ved hjælp af funktionen, mysqli_real_escape_string();før du sender SQL -forespørgslen:
$mysqli = new mysqli('hostname', 'db_username', 'db_password', 'db_name');
$query = sprintf("SELECT * FROM `Users` WHERE UserName='%s' AND Password='%s'",
$mysqli->real_escape_string($username),
$mysqli->real_escape_string($password));
$mysqli->query($query);
Denne funktion foranstiller omvendte skråstreger til følgende tegn: \x00, \n, \r, \, ', "og \x1a. Denne funktion bruges normalt til at gøre data sikre, inden der sendes en forespørgsel til MySQL .
PHP har lignende funktioner til andre databasesystemer, f.eks. Pg_escape_string () til PostgreSQL . Funktionen addslashes(string $str)fungerer til undslippe tegn og bruges især til forespørgsel på databaser, der ikke har undslippe funktioner i PHP. Det returnerer en streng med backslash før tegn, der skal undslippes i databasespørgsmål osv. Disse tegn er enkelt citat ('), dobbelt citat ("), backslash (\) og NUL (NULL byte).
Rutinemæssigt passerer undslapte strenge til SQL er fejludsat, fordi det er let at glemme at undslippe en given streng. Oprettelse af et gennemsigtigt lag for at sikre input kan reducere denne fejlfølsomhed, hvis ikke helt eliminere den.
Mønsterkontrol
Heltal, float eller boolsk, strengparametre kan kontrolleres, hvis deres værdi er en gyldig repræsentation for den givne type. Strenge, der skal følge et strengt mønster (dato, UUID, kun alfanumerisk osv.), Kan kontrolleres, hvis de matcher dette mønster.
Databasetilladelser
Begrænsning af tilladelser til databaselogin, der bruges af webprogrammet til kun det nødvendige, kan medvirke til at reducere effektiviteten af eventuelle SQL -injektionsangreb, der udnytter eventuelle fejl i webprogrammet.
For eksempel på Microsoft SQL Server kan en database -logon være begrænset fra at vælge på nogle af systemtabellerne, hvilket ville begrænse bedrifter, der forsøger at indsætte JavaScript i alle tekstkolonner i databasen.
deny select on sys.sysobjects to webdatabaselogon;
deny select on sys.objects to webdatabaselogon;
deny select on sys.tables to webdatabaselogon;
deny select on sys.views to webdatabaselogon;
deny select on sys.packages to webdatabaselogon;
Eksempler
- I februar 2002 opdagede Jeremiah Jacks, at Guess.com var sårbar over for et SQL-injektionsangreb, hvilket gjorde det muligt for alle, der var i stand til at konstruere en korrekt udformet URL, at trække 200.000+ navne, kreditkortnumre og udløbsdatoer ned i webstedets kundedatabase.
- Den 1. november 2005 brugte en teenagerhacker SQL -indsprøjtning til at bryde ind på stedet for et taiwansk informationssikkerhedsmagasin fra Tech Target -gruppen og stjæle kunders oplysninger.
- Den 13. januar 2006 brød russiske computerkriminelle ind på et websted i Rhode Island og angiveligt stjal kreditkortdata fra personer, der har handlet online med statslige agenturer.
- Den 29. marts 2006 en hacker opdagede en SQL injektion fejl i en officiel indiske regering 's turisme site.
- Den 29. juni 2007 ødelagde en computerkriminel Microsoft UK -webstedet ved hjælp af SQL -indsprøjtning. Det britiske websted The Register citerede en Microsoft -talsmand, der erkendte problemet.
- Den 19. september 2007 og 26. januar 2009 brugte den tyrkiske hackergruppe "m0sted" SQL -indsprøjtning til at udnytte Microsofts SQL Server til at hacke webservere tilhørende henholdsvis McAlester Army Ammunition Plant og US Army Corps of Engineers .
- I januar 2008 blev titusindvis af pc'er inficeret af et automatisk SQL -injektionsangreb, der udnyttede en sårbarhed i applikationskode, der bruger Microsoft SQL Server som databaselager.
- I juli 2008, Kaspersky 's malaysiske blev hjemmeside hacket af 'm0sted' hacker gruppe ved hjælp af SQL injektion.
- Den 13. april 2008 lukkede Sexual and Violent Offender Registry of Oklahoma sit websted for " rutinemæssig vedligeholdelse " efter at have fået besked om, at 10.597 personnummer, der tilhører seksualforbrydere, var blevet downloadet via et SQL -injektionsangreb
- I maj 2008 brugte en serverfarm inde i Kina automatiserede forespørgsler til Googles søgemaskine til at identificere SQL -serverwebsteder, der var sårbare over for angreb fra et automatiseret SQL -injektionsværktøj.
- I 2008, mindst april til august, begyndte et stort angreb at udnytte sårbarhederne ved SQL -injektion på Microsofts IIS -webserver og SQL Server -databaseserver . Angrebet kræver ikke at gætte navnet på en tabel eller kolonne og ødelægger alle tekstkolonner i alle tabeller i en enkelt anmodning. En HTML -streng, der refererer til en malware -JavaScript -fil, føjes til hver værdi. Når denne databaseværdi senere vises for en besøgende på webstedet, forsøger scriptet flere måder at få kontrol over en besøgendes system. Antallet af udnyttede websider anslås til 500.000.
- Den 17. august 2009 anklagede det amerikanske justitsministerium en amerikansk statsborger, Albert Gonzalez og to unavngivne russere for tyveri af 130 millioner kreditkortnumre ved hjælp af et SQL -injektionsangreb. I angiveligt "det største tilfælde af identitetstyveri i amerikansk historie" stjal manden kort fra en række virksomhedsofre efter at have undersøgt deres betalingsbehandlingssystemer . Blandt de ramte virksomheder var kreditkortprocessoren Heartland Payment Systems , dagligvarekæden 7-Eleven og supermarkedskæden Hannaford Brothers .
- I december 2009 overtrådte en angriber en RockYou -klartekstdatabase, der indeholder de ukrypterede brugernavne og adgangskoder for omkring 32 millioner brugere ved hjælp af et SQL -injektionsangreb.
- I juli 2010, en Sydamerikansk sikkerhed forsker, der går under håndtaget "Ch Russo" opnåede følsomme brugeroplysninger fra populære BitTorrent- websted The Pirate Bay . Han fik adgang til webstedets administrative kontrolpanel og udnyttede en sårbarhed i SQL -indsprøjtning, der gjorde det muligt for ham at indsamle oplysninger om brugerkonti, herunder IP -adresser , MD5 -kodeord -hash og registreringer af hvilke torrents enkelte brugere har uploadet.
- Fra den 24. til den 26. juli 2010 brugte angribere fra Japan og Kina en SQL -indsprøjtning for at få adgang til kundernes kreditkortdata fra Neo Beat, et Osaka -baseret firma, der driver et stort online supermarkedsite. Angrebet påvirkede også syv forretningspartnere, herunder supermarkedskæder Izumiya Co, Maruetsu Inc og Ryukyu Jusco Co. Tyveri af data påvirkede en rapporteret 12.191 kunder. Den 14. august 2010 blev det rapporteret, at der har været mere end 300 tilfælde, hvor kreditkortoplysninger blev brugt af tredjemand til at købe varer og tjenester i Kina.
- Den 19. september under det svenske folketingsvalg i 2010 forsøgte en vælger en kodeindsprøjtning ved håndskrift at skrive SQL-kommandoer som en del af en indskrivningsafstemning .
- Den 8. november 2010 blev det britiske Royal Navy -websted kompromitteret af en rumænsk hacker ved navn TinKode ved hjælp af SQL -indsprøjtning .
- Den 5. februar 2011 blev HBGary , et teknologisikkerhedsfirma, brudt ind af LulzSec ved hjælp af en SQL-indsprøjtning på deres CMS-drevne websted
- Den 27. marts 2011 blev www.mysql.com, den officielle hjemmeside for MySQL , kompromitteret af en hacker, der brugte SQL blind injektion
- Den 11. april 2011 blev Barracuda Networks kompromitteret ved hjælp af en SQL -injektionsfejl. E -mail -adresser og brugernavne til medarbejdere var blandt de indhentede oplysninger.
- I løbet af en periode på 4 timer den 27. april 2011 opstod der et automatisk SQL -injektionsangreb på bredbåndsrapporter -webstedet, der var i stand til at udtrække 8% af brugernavn/adgangskodepar: 8.000 tilfældige konti for de 9.000 aktive og 90.000 gamle eller inaktive konti.
- Den 1. juni 2011 blev " hacktivister " fra gruppen LulzSec anklaget for at have brugt SQLI til at stjæle kuponer , downloadnøgler og adgangskoder, der blev gemt i klartekst på Sonys websted, hvor de fik adgang til personlige oplysninger om en million brugere.
- I juni 2011 blev PBS hacket af LulzSec, sandsynligvis ved brug af SQL -injektion; hele processen, der bruges af hackere til at udføre SQL -injektioner, blev beskrevet i denne Imperva -blog .
- I maj 2012 blev webstedet for Wurm Online , et massivt online multiplayerspil , lukket for en SQL -indsprøjtning, mens stedet blev opdateret.
- I juli 2012 blev det rapporteret om en hackergruppe at have stjålet 450.000 loginoplysninger fra Yahoo! . Logins blev gemt i ren tekst og blev angiveligt taget fra et Yahoo -underdomæne , Yahoo! Stemmer . Gruppen krænkede Yahoos sikkerhed ved at bruge en " fagforeningsbaseret SQL -injektionsteknik".
- Den 1. oktober 2012 offentliggjorde en hackergruppe kaldet "Team GhostShell" de personlige optegnelser fra studerende, fakulteter, medarbejdere og alumner fra 53 universiteter, herunder Harvard , Princeton , Stanford , Cornell , Johns Hopkins og University of Zurich på pastebin. com . Hackerne hævdede, at de forsøgte at "øge bevidstheden om de ændringer, der er foretaget i dagens uddannelse", klage over ændrede uddannelseslove i Europa og stigninger i undervisningen i USA .
- I februar 2013 hackede en gruppe maldiviske hackere webstedet "UN-Maldives" ved hjælp af SQL Injection.
- Den 27. juni 2013 overtrådte hackergruppen " RedHack " Istanbul Administration Site. De hævdede, at de har været i stand til at slette folks gæld til vand-, gas-, internet-, elektricitets- og telefonselskaber. Derudover offentliggjorde de adminbrugernavn og adgangskode, så andre borgere kunne logge ind og rydde deres gæld tidligt om morgenen. De meddelte nyheden fra Twitter.
- Den 4. november 2013 kompromitterede hacktivistgruppen "RaptorSwag" angiveligt 71 kinesiske regeringsdatabaser ved hjælp af et SQL -injektionsangreb på det kinesiske handelskammer. De lækkede data blev offentliggjort i samarbejde med Anonymous .
- Den 2. februar 2014 havde AVS TV 40.000 konti lækket af en hackergruppe ved navn @deletesec
- Den 21. februar 2014 havde FNs internetforvaltningsforum 3.215 kontooplysninger lækket.
- Den 21. februar 2014 hackede hackere i en gruppe ved navn @deletesec hacket Spirol International efter angiveligt at have truet med at få hackerne anholdt for at rapportere sikkerhedssårbarheden. 70.000 brugeroplysninger blev afsløret over denne konflikt.
- Den 7. marts 2014 meddelte embedsmænd ved Johns Hopkins University offentligt, at deres Biomedical Engineering Servers var blevet offer for et SQL -injektionsangreb udført af en anonym hacker ved navn "Hooky" og tilpasset hacktivistgruppen "RaptorSwag". Hackerne kompromitterede personlige oplysninger om 878 studerende og ansatte ved at sende en pressemeddelelse og de lækkede data på internettet.
- I august 2014 afslørede Milwaukee -baserede computersikkerhedsfirma Hold Security, at det afslørede tyveri af fortrolige oplysninger fra næsten 420.000 websteder gennem SQL -injektioner. New York Times bekræftede dette fund ved at ansætte en sikkerhedsekspert til at kontrollere kravet.
- I oktober 2015 blev et SQL -injektionsangreb brugt til at stjæle personoplysninger om 156.959 kunder fra det britiske teleselskab TalkTalks servere, der udnyttede en sårbarhed i en ældre webportal.
- I august 2020 blev et SQL-injektionsangreb brugt til at få adgang til oplysninger om mange Stanford- studerendes romantiske interesser som følge af usikre standarder for datasanering fra Link, en opstart grundlagt på campus af bachelor Ishan Gandhi.
- I begyndelsen af 2021 blev 70 gigabyte data eksfiltreret fra det yderste højre websted Gab gennem et SQL-injektionsangreb. Sårbarheden blev introduceret i Gab -kodebasen af Fosco Marotto, Gab's CTO . Et andet angreb mod Gab blev lanceret den næste uge ved hjælp af OAuth2 -tokens stjålet under det første angreb.
I populærkulturen
- Uautoriseret login til websteder ved hjælp af SQL -indsprøjtning danner grundlaget for en af delplotene i JK Rowlings roman fra 2012 The Casual Vacancy .
- En 2007 xkcd -tegneserie involverede en karakter Robert '); DROP TABLE-studerende;- navngivet til at udføre en SQL-indsprøjtning. Som et resultat af denne tegneserie kaldes SQL -indsprøjtning undertiden uformelt som "Bobby -tabeller".
- I 2014 omdøbte en person i Polen lovligt sin virksomhed til Dariusz Jakubowski x '; DROP TABLE -brugere; VÆLG '1 i et forsøg på at afbryde driften af spammers høstbots .
- 2015 -spillet Hacknet har et hackingprogram kaldet SQL_MemCorrupt. Det beskrives som at injicere en tabelpost, der forårsager en korruptionsfejl i en SQL -database, og derefter forespørger tabellen, hvilket forårsager et SQL -databasekrasch og kernedump.
- I Star Trek: Discovery -afsnittet i 2019, hvis hukommelse betjener kommandør Airiam opdagede, at en sonde, der angreb et datalager på et af skibets fartøjer, havde foretaget en række SQL -indsprøjtninger, men at hun ikke kunne finde kompromitterede filer.
Se også
- Kodeinjektion
- Scripting på tværs af websteder
- Metasploit -projekt
- OWASP Open Web Application Security Project
- SGML -enhed
- Ukontrolleret formatstreng
- w3af
- Webapplikationssikkerhed
Referencer
eksterne links
- SQL Injection Knowledge Base , af Websec.
- WASC Threat Classification - SQL Injection Entry , af Web Application Security Consortium.
- Hvorfor SQL Injection Won't Go Away , af Stuart Thomas.
- SDL Hurtige sikkerhedsreferencer om SQL -injektion af Bala Neerumalla.
- Sådan fungerer sikkerhedsfejl: SQL -indsprøjtning