SQL-injektio

Kirjoittaja: Peter Berry
Luomispäivä: 13 Elokuu 2021
Päivityspäivä: 22 Kesäkuu 2024
Anonim
Forensically Investigate Who Changed What and When In an SQL Server Database
Video: Forensically Investigate Who Changed What and When In an SQL Server Database

Sisältö

Määritelmä - Mitä SQL-injektio tarkoittaa?

SQL-injektio on tietokonehyökkäys, jossa haittaohjelmat upotetaan huonosti suunniteltuun sovellukseen ja siirretään sitten taustatietokantaan. Haitalliset tiedot tuottavat sitten tietokantakyselyjen tuloksia tai toimia, joita ei olisi koskaan pitänyt suorittaa.


Johdanto Microsoft Azureen ja Microsoft Cloud | Tämän oppaan läpi opit mitä pilvipalvelussa on kyse ja kuinka Microsoft Azure voi auttaa sinua siirtämään ja johtamaan yritystä pilvestä.

Techopedia selittää SQL-injektiota

Annetaan läpi esimerkki SQL-injektiohyökkäyksestä:

Pankin toimintoja suorittava sovellus sisältää valikoita, joita voidaan käyttää asiakkaiden tietojen etsimiseen tietopisteiden, kuten asiakkaan sosiaaliturvatunnuksen, avulla. Taustalla sovellus kutsuu SQL-kyselyä, joka suoritetaan tietokannassa siirtämällä syötetyt hakuarvot seuraavasti:

VALITSE asiakkaan_nimi, puhelin, osoite, syntymäpäivä_JOS social_sec_no = 23425

Tässä näyteohjelmassa käyttäjä syöttää arvon 23425 sovellusvalikkoikkunaan ja pyytää käyttäjää antamaan sosiaaliturvatunnuksen. Sitten, käyttäjän antamaa arvoa käyttämällä, SQL-kysely suoritetaan tietokantaan.

SQL-tietämystä omaava käyttäjä voi ymmärtää sovelluksen ja sen sijaan, että kirjoittaisi yhden arvon, kun sinulta kysytään sosiaaliturvatunnusta, kirjoita merkkijono ”23425 tai 1 = 1”, joka välitetään tietokantaan seuraavasti:

VALITSE asiakkaan nimi, puhelin, osoite, syntymäpäivä_JOS social_sec_no = 23425 tai 1 = 1

WHERE-lause on tärkeä, koska se tuo esiin haavoittuvuuden. Tietokannassa ehto 1 = 1 on aina totta, ja koska kysely on määritetty palauttamaan asiakkaan sosiaaliturvatiedot (23425) tai WHERE 1 = 1, kysely palauttaa kaikki taulukon rivit, mikä ei ollut alkuperäinen tarkoitus.

Yllä oleva SQL-injektiohyökkäysesimerkki on yksinkertainen, mutta se osoittaa, kuinka haavoittuvuuden hyödyntäminen huijaa sovellusta backend-tietokantakyselyn tai -komennon suorittamiseen.

SQL-injektiohyökkäyksiä voidaan vähentää varmistamalla asianmukainen sovellussuunnittelu, etenkin moduuleissa, jotka vaativat käyttäjän syöttämiä tietokantakyselyjen tai -komentojen suorittamista. Yllä olevassa esimerkissä sovellusta voidaan muuttaa siten, että se hyväksyy vain yhden numeerisen arvon.