SQL ներարկումը վեբ հարձակման ամենատարածված մեխանիզմներից մեկն է, որն օգտագործվում է հարձակվողների կողմից բիզնեսից կամ սոցիալական մեդիա հարթակից գրառումներ և զգայուն գրառումներ գողանալու համար: Թեև SQL Injection-ը կարող է կորցնել ցանկացած տեղեկատվություն SQL տվյալների բազա օգտագործող հավելվածի վրա, այն կիլոմետրերով օգտագործվում է վեբ կայքերը հարձակվելու համար: SQL Injection-ը կոդի ներարկման տեխնիկա է, որը հաքերները կարող են օգտագործել SQL-ի վնասակար հայտարարությունները մուտքագրման հարցումների մեջ տեղադրելու համար՝ հիմքում ընկած SQL տվյալների բազայի միջոցով կատարելու համար: Այս մեթոդը իրագործելի է դառնում թեքված վեբ փաթեթների ոչ պատշաճ կոդավորման պատճառով: SQL ներարկումը բարձրանում է այն փաստի պատճառով, որ մուտքագրման դաշտերը հասանելի են օգտագործողի համար մուտքագրել բոլոր վատ տեսակների SQL հայտարարությունները՝ ուղղակիորեն տվյալների բազան անցնելու և հարցումները տեղադրելու համար:
Եկեք մուտքագրենք այս URL-ը ձեր բրաուզերում և աղյուսակից ստանանք բոնուսային կատեգորիաները.
https://insecure-website.com/products?category=Բոնուս
Սա հանգեցնում է նրան, որ հավելվածը SQL հարց է տալիս տվյալների բազայից համապատասխան ապրանքների մասին տեղեկատվությունը հետևյալ կերպ.
SELECT * FROM ապրանք ՈՐՏԵՂ կատեգորիա = «Բոնուս» ԵՎ թողարկված = 1
Այս SQL հարցումը տվյալների բազայից պահանջում է վերադարձնել.
Ծրագիրը ուժի մեջ չի դնում որևէ պաշտպանություն SQL ներարկման հարձակումների դեմ, այնպես որ հարձակվողը կարող է հավաքել այնպիսի հարձակում, ինչպիսին է.
https://insecure-website.com/products?category=Bonus’ – –
Վերոնշյալ հարցման արդյունքը հետևյալն է.
Ընտրեք * ապրանքներից, որտեղ կատեգորիա = «Բոնուս»–« ԵՎ թողարկված = 1
Հիմնական բաղադրիչը հենց այստեղ այն է, որ կրկնակի գծերի շարքը դիտողություն է SQL-ում և նշանակում է, որ մնացած հարցը մեկնաբանվում է որպես մեկնաբանություն: Սա հաջողությամբ ազատվում է մնացած հարցումից, ուստի այն այլևս չի ներառում AND մեկնարկել = 1: Այսպիսով, յուրաքանչյուր ապրանք ցուցադրվում է, օրինակ՝ չհրապարակված ապրանքները:
SQL ներարկման մեկ այլ մեթոդ.
https://insecure-website.com/products?category=Bonus’+OR+1=1–
Արդյունքը:
Ընտրեք * ապրանքներից, որտեղ կատեգորիա = «Բոնուս» ԿԱՄ 1=1–« ԵՎ թողարկված = 1
Օգտագործելով վերը նշված հարցումը, դուք կարող եք հեշտությամբ հարձակվել տվյալների բազայի վրա:
Շրջանցեք մուտքի հաշիվը՝ օգտագործելով հետևյալ հարցումը.
SELECT * FROM օգտվողներ ՈՐՏԵՂ օգտվողի անուն = «ջոն» ԵՎ գաղտնաբառ = «johnwilliam»
Հարձակվողի գրանցամատյանը օգտանունով առանց որևէ գաղտնաբառի, SQL հարցումում օգտագործեք – կրկնակի գծիկով գաղտնաբառ և մեկնաբանեք այն որտեղ կետում: Օրինակ՝ հարցում ուղարկեք օգտվողի անվան ադմինիստրատորին և գաղտնաբառի դատարկ դաշտը: Հարցումը հետևյալն է.
Ընտրեք * Օգտատերերից ՈՐՏԵՂ օգտվողի անուն = «ադմինիստրատոր» – – «ԵՎ գաղտնաբառ =
Նրանք նաև շատ մեթոդներ են SQL ներարկման համար:
SQL Injection-ի պարզ PHP կոդը մուտքի էջում տրված է ստորև.
$uname = $_POST [ ‘ unname ‘ ] ;
$passwrd = $_POST [ ‘ passwrd ‘ ] ;
$query = ‘ ընտրեք օգտվողի անուն, անցեք օգտվողներից, որտեղ օգտագործողի անունը = ‘ $uname ‘ և գաղտնաբառը = ‘ $passwrd
$result = mysql_query ($query);
$rows = mysql_fetch_array ($result);
Եթե ($ տող)
{
echo «Դուք հաջողությամբ մուտք եք գործել»;
create_session();
}
ուրիշ {
echo «Հաջորդ անգամ ավելի լավ հաջողություն»;
}