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.
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:
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.
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.
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 ' ;
}