Համակարգիչներ, Ծրագրավորում
Որն է ներարկում SQL.
Թիվն կայքերի եւ էջեր վրա ոստայնում աճում է անշեղորեն: Ձեռնարկվել զարգացման համար բոլոր նրանց, ովքեր կարող են. Եւ novice վեբ ծրագրավորողներ հաճախ օգտագործում վտանգավոր եւ հին կոդը: Եւ դա ստեղծում է շատ loopholes համար հանցագործների եւ հաքերների. Քան նրանք: Մեկը առավել դասական խոցելի կետերի, SQL ներարկման.
Մի քիչ տեսության
Շատերը գիտեն, որ մեծամասնությունը կայքերի եւ ծառայությունների վրա ցանցում են, օգտագործելով SQL տվյալների բազայի պահեստավորման. Սա Կանոնարկված հարցումների լեզու , որը թույլ է տալիս Ձեզ վերահսկել եւ կառավարել պահպանման տվյալների: Կան շատ տարբեր վարկածներ են տվյալների բազայի կառավարման համակարգի տվյալների բազայի Oracle, MySQL, Postgre. Անկախ նրանից, անունով եւ տեսակի, նրանք օգտագործում են նույն հարցումների տվյալները: Հենց այստեղ է, որ ընկած է պոտենցիալ խոցելիությունը: Եթե կառուցապատողը չի հաջողվել կարգավորել պատշաճ եւ ապահով պահանջել, հարձակվողը կարող է օգտվել այս եւ օգտագործել հատուկ մարտավարություն է ձեռք բերել մուտք դեպի տվյալների բազայի, եւ ապա - եւ ամբողջ կայքի ղեկավարներին:
Նման իրավիճակներից խուսափելու համար, դուք պետք է պատշաճ կերպով օպտիմալացնել կոդը եւ սերտորեն վերահսկել այնպիսի եղանակով, որի մի խնդրանք է մշակվող:
Ստուգելու համար SQL ներարկման
Հաստատել ներկայությունը մի խոցելիության ցանցում ունի քաշը պատրաստի ավտոմատացված ծրագրային համակարգերի. Սակայն դա հնարավոր է իրականացնել մի պարզ ստուգում ձեռքով: Որպեսզի դա անել, գնալ մեկի փորձարկման վայրերի եւ հասցեագոտու փորձում է առաջացնել մի տվյալների բազայի սխալ: Օրինակ, մի սցենար է կայքում չի կարող կարգավորել խնդրանքը եւ չեն կտրել նրանց.
Օրինակ, կա nekiy_sayt / index.php? Id = 25
The ամենադյուրին ճանապարհը - ի 25 հետո մեջբերումով եւ ուղարկեք խնդրանքը: Եթե ոչ մի սխալ է տեղի ունեցել, կամ կայքի եւ ֆիլտրի բոլոր հարցումները են վարվել ճիշտ, կամ անջատված է պարամետրերը իրենց արտադրանքի. Եթե մի էջ, որը reloaded խնդիրների հետ, ապա խոցելիությունը SQL ներարկման է:
Դրանից հետո նա պարզել է, որ դուք կարող եք փորձել է ազատվել դրանից:
Իրականացնել այս խոցելիության անհրաժեշտ է իմանալ, մի փոքր մասին, SQL, հարցումներ թիմերի: Նրանցից մեկը `UNION. Այն համախմբում է մի քանի հարցման արդյունքների մեջ մեկը: Այնպես որ, մենք կարող ենք հաշվարկել համարը դաշտերի սեղանին. ՕՐԻՆԱԿ առաջին հարցում է:
- nekiy_sayt / index.php? id = 25 UNION SELECT 1:
Շատ դեպքերում, այս արձանագրությունը պետք առաջացնում է սխալ. Սա նշանակում է, որ մի շարք ոլորտներում հավասար չէ 1. Այսպես, ընտրելով տարբերակները 1 կամ ավելի, դա հնարավոր է հաստատել իրենց ճշգրիտ թիվը:
- nekiy_sayt / index.php? id = 25 UNION SELECT 1,2,3,4,5,6:
Այսինքն, երբ սխալ այլեւս չի հայտնվի, ապա դա նշանակում է, որ մի շարք բնագավառներում, ինչպես կռահել:
Կա նաեւ այլընտրանքային լուծում է այս խնդիրը. Օրինակ, երբ մի մեծ շարք ոլորտներում - 30, 60 կամ 100. Այս հրամանը խմբի կողմից: Այն խմբերը արդյունքները հարցման կամ այլ հիմքով, օրինակ նկարներ ՀՀ:
- nekiy_sayt / index.php? id = 25 խմբի կողմից 5:
Եթե սխալ չի ստացվել, ապա դաշտերը ավելի քան 5 Այսպիսով, փոխարինող տարբերակներ բավականին լայն միջակայքում, դա հնարավոր է հաշվարկել, թե նրանցից շատերը իրականում:
Այս օրինակը SQL-injection - սկսնակների համար, ովքեր ցանկանում են փորձում իրենց փորձարկման իր կայքում. Դա կարեւոր է հիշել, որ չարտոնված այլ առկա հոդվածով քրեական օրենսգրքի:
Հիմնական տեսակները ներարկումից
Իրականացնել խոցելիությունը կողմից SQL ներարկման մի քանի մարմնավորումների ընթացքում: Հաջորդ ամենատարածված մեթոդները:
The UNION հարցում է SQL ներարկման. Մի պարզ օրինակ, այս տիպի արդեն քննվել վերեւում. Այն իրականացվել է սխալի ստուգում մուտքային տվյալները, որոնք չեն ֆիլտրացված.
Սխալ հիմնված SQL ներարկման. Քանի որ ենթադրում է անվանումը, այս տեսակ է նաեւ օգտագործում է սխալ, ուղարկելով արտահայտությունները կազմված syntactically սխալ: Ապա կա որսալը պատասխան ներլցնելու վերլուծում, որը կարող է իրականացվել են SQL ներարկման.
Stacked հարցումները SQL ներարկման. Այս խոցելիությունը որոշվում կատարելով հաջորդական հարցումներ: Այն բնութագրվում է: Բացի վերջում նշանի »,«. Այս մոտեցումը հաճախ իրականացվում է մուտք գործել իրականացմանը կարդալ եւ գրել տվյալները կամ օպերացիոն համակարգի գործառույթների, եթե արտոնություններ թույլ են տալիս այն.
Ծրագրային ապահովման համար որոնման SQL-խոցելիությունները
Կա համար SQL ներարկման, որ ծրագիրը սովորաբար ունեն երկու բաղադրիչ - Կայք սկան համար հնարավոր խոցելի եւ օգտագործել դրանք ձեռք բերել մուտքի տվյալները: Կան որոշ գործիքներ գրեթե բոլոր հայտնի հարթակներում: Նրանց գործառույթն մեծապես հեշտացնում ստուգելու կայքը է ճեղք Ձեր SQL ներարկման.
Sqlmap
Շատ հզոր սկաների կողմից, որը աշխատում է մեծամասնության տվյալների բազաների նկատմամբ. Այն աջակցում է տարբեր մեթոդներ իրականացման SQL ներարկման. Այն ունի հնարավորություն ինքնաբերաբար ճանաչելու տեսակի գաղտնաբառը hash cracking եւ բառարան. Ներկա եւ ֆունկցիոնալ ֆայլի վերբեռնման եւ ներբեռնել սերվերից.
Տեղադրում է Linux իրականացվում է օգտագործելով հրամանները:
- գիտ clone https://github.com/sqlmapproject/sqlmap.git sqlmap-dev,
- cdsqlmap-dev /,
- ./sqlmap.py --wizard:
Windows- ի համար հասանելի է որպես տարբերակ հետ հրամանի գծի եւ գրաֆիկական ինտերֆեյսի.
jSQL ներարկման
jSQL ներարկման - խաչաձեւ հարթակի գործիք փորձարկման օգտագործումը SQL խոցելի. Գրված է Java, որպեսզի համակարգը պետք է տեղադրված JRE: Կարողացել է կարգավորել ստանում են դիմումներ, post, header, ժպտալու: Այն ունի հարմարավետ գրաֆիկական ինտերֆեյսի.
Տեղադրում է այս ծրագրային փաթեթի հետեւյալն է.
wget https://github.com/`curl -s https: //github.com/ron190/jsql-injection/releases | grep-Ե -o '/ron190/jsql-injection/releases/download/v[0-9]{1,2}.[0-9]{1,2}/jsql-injection-v[0-9] : {1,2} [0-9] {1,2} .բանկա '| ղեկավար-n 1`
Մեկնարկը, օգտագործելով հրամանի Java -jar ./jsql-injection-v*.jar
Որպեսզի սկսել թեստային կայքը SQL-խոցելիության, դուք պետք է մուտքագրեք հասցեն սկիզբ դաշտում: Նրանք են առանձին GET եւ POST: Մի դրական արդյունք, ցուցակը առկա սեղանների կհայտնվի ձախ պատուհանում. Դուք կարող եք դիտել դրանք, եւ իմանալ, թե ինչ - որ գաղտնի տեղեկությունները:
էջանշանը «Admin էջ» օգտագործվում է գտնել այն վարչական վահանակներ: Դրա վրա միջոցով հատուկ կաղապարներ ինքնաբերաբար որոնում համակարգ արձանագրում արտոնյալ օգտվողներին. Նրանցից դուք կարող եք ստանալ միայն մի հաշ գաղտնաբառը: Բայց նա ունի Գործիքներ ծրագրի.
Հետո գտնելու բոլոր խոցելի եւ ներարկման անհրաժեշտ հարցումներ, ապա գործիքը թույլ կտա սերվերը է լրացնել ձեր ֆայլը կամ, ընդհակառակը, բեռնել այն այստեղ.
SQLi Ինքնաթափ v.7
Այս ծրագիրը - հեշտ օգտագործման գործիք գտնելու համար եւ իրականացման SQL խոցելի. Այն արտադրում է ՄԱԿ-ը հիմնված է, այսպես կոչված, Այծեմնիկ. Նրանց ցանկը կարելի է գտնել ինտերնետում. Dorca համար SQL ներարկման - սրանք հատուկ կաղապարներ են որոնման հարցումների: With նրանց օգնությամբ, դուք կարող եք գտնել պոտենցիալ խոցելի կայքի միջոցով ցանկացած որոնման.
Գործիքներ ուսուցման
Itsecgames.com է կայքում կա մի հատուկ շարք գործիքներ, որոնք թույլ է տալիս օրինակը ցույց է տալիս, թե ինչպես պետք է անել SQL ներարկման եւ փորձարկել այն. Որպեսզի օգուտ, դա անհրաժեշտ է բեռնել եւ տեղադրել: Արխիվը պարունակում է մի շարք ֆայլերի, որը հանդիսանում է կառուցվածքը կայքում. Է տեղադրել այն պետք է գոյություն ունեցող համակարգի փաթեթի Apache վեբ սերվերի, MySQL եւ PHP.
Արձակել արխիվը մի վեբ սերվերի թղթապանակ, դուք պետք է գնալ հասցեով մտել, երբ տեղադրել այս ծրագրաշարը. A էջը անձնագիրը գրանցման: Այստեղ դուք պետք է մուտքագրեք Ձեր տվյալները եւ սեղմեք «Ստեղծել»: Տեղափոխելով օգտագործողին նոր էկրանի, համակարգը հուշում է Ձեզ ընտրել մեկը փորձարկման դեպքերի: Նրանց թվում կան նկարագրված են ներարկման, եւ շատ այլ փորձարկման իրեր:
Դա արժե հաշվի առնել մի օրինակը SQL-ներարկում տիպի ստանալ / Որոնել: Այստեղ դուք պետք է ընտրեք այն եւ սեղմեք «Hack»: Նախքան օգտագործողը կհայտնվի, իսկ որոնման լարային իմիտացիա ֆիլմի կայքում: Է տեսակավորել ֆիլմերը կարող է երկարատեւ լինել: Բայց կան միայն 10. Օրինակ, դուք կարող եք փորձել է մտնել Iron մարդ. Այն ցույց է տալիս, ֆիլմը, ապա Կայքի աշխատում, եւ սեղաններ, այն պարունակում. Այժմ մենք պետք է ստուգել, եթե հատուկ նիշ script ֆիլտրերի, մասնավորապես մեջբերումով. Որպեսզի դա անել, ավելացնել «հասցեի բարում:»: Ընդ որում, դա պետք է արվի հետո ֆիլմի կոչման: Կայքը տալիս է սխալ Error: Դուք ունեք որեւէ սխալ ձեր SQL syntax; ստուգել ձեռնարկը, որը համապատասխանում է ձեր MySQL սերվերի տարբերակը ճիշտ ձեւաչափումով օգտագործել մոտ '%' 'տողում 1, որում նշվում է, որ կերպարները դեռ չեն վարվել ճիշտ. Այսպիսով, դուք կարող եք փորձել է փոխարինել Ձեր խնդրանքը. Բայց մենք պետք է առաջին հերթին հաշվարկել շարք ոլորտներում. Այն օգտագործվում է այս կարգով, որը ներկայացրել է չակերտների: http://testsites.com/sqli_1.php?title=Iron+Man 'կարգը 2 - & գործողությունների = որոնման.
Այս հրամանը միայն ցուցադրում է տեղեկատվություն մասին ֆիլմը, որը, մի շարք ոլորտներում ավելի մեծ է, քան 2. կրկնակի գծիկ պատմում է սերվերի վրա, որ մյուս հարցումները պետք է անտեսվեցին. Այժմ մենք պետք է տեսակավորելու դուրս դնելով աճող կարեւորությունը, քանի դեռ սխալ չի տպագրվել: Ի վերջո, պարզվում է, որ դաշտերը պետք է լինի 7:
Հիմա ժամանակն է ստանալ ինչ - որ բան օգտակար դուրս բազայի. Փոքր-ինչ փոփոխել խնդրանքը հասցեի բարում, հասցնելով այն ձեւով: http://testsites.com/sqli_1.php?title=Iron+Man 'միություն ընտրելու 1, տվյալների բազայի (), օգտվող (), 4, գաղտնաբառը, 6, 7-ից օգտվողների - & ակցիան = որոնման. Որպես հետեւանք դրա իրականացման հետ կապված ցուցադրվող տողը գաղտնաբառով քեշերի, որը կարող է հեշտությամբ վերածվել հասկանալի խորհրդանիշների օգտագործելով մեկը օնլայն ծառայությունների. Մի conjured մի քիչ, եւ վերցրել մի դաշտ անունը մուտքի, դուք կարող եք ձեռք բերել մուտք դեպի ուրիշի մտնելու, ինչպես, օրինակ, admin կայքում.
Արտադրանքի ունի մի քաշը տեսակ ներարկման տեսակները, որոնց վրա պետք է զբաղվել: Այն պետք է հիշել, որ կիրառումը այդ հմտությունների ցանցի վրա իրական կայքերի կարող է լինել քրեական հանցագործություն:
Ներարկման եւ PHP
Որպես կանոն, PHP-կոդի եւ պատասխանատու է անհրաժեշտ վերամշակման հարցումներին եկող մասին. Հետեւաբար, այս մակարդակում, դուք պետք է կառուցել պաշտպանական դեմ SQL-ներարկման PHP:
Նախ, եկեք տալ մի քանի պարզ ցուցումները, հիման վրա, որոնց դա անհրաժեշտ է անել.
- Տվյալները պետք է միշտ է մշակվում նախքան տեղադրված են մասնակի: Սա կարող է կատարվել կամ օգտագործելով առկա արտահայտությունները, կամ կազմակերպելով հարցումներ ձեռքով: Այստեղ, նույնպես պետք է հաշվի առնել, որ թվային արժեքները վերածվում տեսակի, որը անհրաժեշտ.
- Խուսափեց հուշում տարբեր վերահսկողության կառույցներ:
Հիմա մի քիչ կանոնների կազմման հարցումները MySQL է պաշտպանեն SQL ներարկման.
Կազմման որեւէ արտահայտություններ է հարցմանը դա կարեւոր է առանձնացնել տվյալներ SQL հիմնաբառեր.
- SELECT * FROM սեղանին, որտեղ name = Zerg.
Այս կոնֆիգուրացիայով, որ համակարգը կարող է մտածել, որ Zerg - ի անունը ցանկացած ոլորտում, այնպես որ դուք պետք է կցել այն չակերտների.
- SELECT * FROM սեղանին, որտեղ name = 'Zerg'.
Սակայն, կան ժամանակներ, երբ արժեքը ինքնին պարունակում մեջբերում.
- SELECT * FROM սեղանին, որտեղ name = 'Կոտ դ' Իվուար.
Այստեղ միայն կարգավորել մի մասը Կոտ դ, իսկ մնացածը կարող է ընկալվել որպես թիմ, որն, իհարկե, ոչ: Հետեւաբար, սխալ է տեղի ունենում: Ապա դուք պետք է այս տեսակի ցուցադրումից տվյալների: Որպեսզի դա անել, օգտագործել backslash - \.
- SELECT * FROM սեղանին, որտեղ name = 'cat-d \' Իվուար '.
Բոլոր վերը նշված վերաբերում է շարքերում: Եթե ակցիան տեղի է ունենում մի շարք, ապա դա պետք չէ որեւէ մեջբերում կամ slashes: Սակայն, նրանք պետք է պահանջվում է բռնի կերպով հանգեցնել ցանկալի տիպով:
Կան առաջարկություններ, որ այդ դաշտը անունը պետք է գրված է backquotes. Այս խորհրդանիշը գտնվում է ձախ կողմում ստեղնաշարի հետ միասին մի ալիքանշան "~": Սա այն է, ապահովել, որ MySQL կարող ճշգրիտ տարբերակել անունը դաշտում ձեր բառի.
Դինամիկ աշխատանքը տվյալների հետ
Շատ հաճախ, ստանալ որեւէ տվյալներ բազայի օգտագործման հարցումները, գեներացվել դինամիկ: Օրինակ `
- SELECT * FROM սեղանին, որտեղ թվով = '$ համարը:
Այստեղ, փոփոխական $ համարը անցել է որպես որոշելու արժեքը դաշտում. Ինչ տեղի կունենա, եթե այն ստանում 'Կոտ դ' Իվուար '. Սխալ:
Խուսափելու համար այս դժվարության, իհարկե, կարող է ներառել «կախարդական մեջբերում» պարամետրերը: Բայց հիմա, որ տվյալները կցուցադրվեն անհրաժեշտության դեպքում եւ ոչ անհրաժեշտ: Բացի այդ, եթե կոդը գրված է ձեռքով, դուք կարող եք անցկացնել մի քիչ ավելի շատ ժամանակ է ստեղծել դիմացկուն է cracking բուն համակարգի դեմ:
Համար անկախ Բացի մի կտրատել կարող է օգտագործել mysql_real_escape_string:
$ Միավորների քան-= mysql_real_escape_string ($ համարը),
$ Year = mysql_real_escape_string ($ տարի);
$ Հարցման = "տեղադրեք սեղանի (համարը, տարին, կարգ) Արժեքներն ($ համարը ',' $ տարվա, 11)":
Չնայած նրան, որ կոդը եւ ավելացել է ծավալում, սակայն պոտենցիալ կլիներ աշխատել շատ ավելի ապահով:
տեղապահներ
Տեղապահներ - մի տեսակ մարկերներ, որի համար համակարգը ճանաչում է, որ սա այն վայրն դուք պետք է փոխարինել հատուկ գործառույթ: Օրինակ `
$ Սաթեն = $ mysqli-> պատրաստել ( "Ընտրել թաղամաս ԻՑ համարը, որտեղ name =");
$ Sate-> bind_param ( «ի», $ համարը),
$ Sate-> կատարել ();
Այս բաժինը օրենսգրքի տեւում է ուսումնական հարցման ձեւանմուշ, եւ ապա կապում է փոփոխական համարը, եւ իրականացնում է այն: Այս մոտեցումը թույլ է տալիս Ձեզ է պառակտել հարցման մշակման եւ դրա իրականացումը. Այսպիսով, այն կարող է փրկվել օգտագործման վնասակար ծրագրային կոդ են SQL-:
Ինչը կարող է հարձակվող
Պաշտպանության համակարգը մի շատ կարեւոր գործոն է, որը չի կարելի անտեսել: Իհարկե, մի պարզ այցեքարտն Կայքի ավելի հեշտ կլինի վերականգնել: Եւ եթե դա մի մեծ պորտալ, ծառայություն, ֆորում. Ինչ հետեւանքներ, եթե դուք չեք մտածել անվտանգության.
Նախ, հակեր կարող է կոտրել ամբողջականությունը, այնպես էլ բազայի եւ հեռացնել այն ամբողջությամբ. Եւ եթե կայքը կառավարիչ կամ հոսթերի չի կատարել պահեստային, դուք կունենաք դժվար ժամանակներ. Առաջին հերթին, որպես զավթիչ, cracking մի կայքը, կարող է գնալ այլ տեղադրված է նույն սերվերի.
Հաջորդը գողությունը անհատական տեղեկատվության այցելուների համար. Թե ինչպես կարելի է օգտագործել ամեն ինչ սահմանափակվել միայն երեւակայության մի hacker. Բայց ամեն դեպքում, հետեւանքները չի լինի, շատ հաճելի. Հատկապես, եթե պարունակվող ֆինանսական տեղեկատվություն.
Բացի այդ, հարձակվող կարող է միավորել միայն մասնակի ինքներդ, եւ ապա կորզել դրա համար փող վերադարձին:
Թխվում ապատեղեկատվությունը օգտվողները անունից կայքի ադմինիստրատորին, այն անձնավորությունը, որ չեն կարող լինել, կարող է լինել նաեւ բացասական հետեւանքներ, որքան հնարավոր է խարդախության փաստերի:
եզրափակում
Բոլոր տեղեկությունները, սույն հոդվածում, որը նախատեսված է տեղեկատվական նպատակով միայն. Օգտագործեք դա միայն պետք է փորձարկել իրենց սեփական նախագծերը, երբ այն detects խոցելի եւ դրանք:
Համար ավելի խորը ուսումնասիրության մեթոդների, թե ինչպես պետք է վարել SQL ներարկման, դա անհրաժեշտ է սկսել փաստացի հետազոտական կարողությունների եւ հատկանիշների SQL լեզվի: Քանի որ հավաքագրված հարցումների, հիմնաբառեր, տիպերի, եւ օգտագործման այն բոլոր.
Նաեւ չի կարող անել, առանց հասկանալու գործողությունը PHP եւ HTML տարրեր գործառույթների. Առաջնային Օգտագործումը խոցելի կետեր, ներարկման - հասցեի տողում, եւ տարբեր որոնման դաշտում. Սովորում PHP գործառույթները, ապա մեթոդը իրականացման եւ առանձնահատկություններ պարզել, թե ինչպես պետք է խուսափել սխալներից.
Ներկայությունը շատ Պատրաստի ծրագրային գործիքների թույլ են տալիս խորը վերլուծության կայքում հայտնի խոցելի. Մեկը ամենատարածված արտադրանքի - Kali Linux. Այս պատկերն է Linux վրա հիմնված օպերացիոն համակարգով, որը պարունակում է մեծ քանակությամբ գործիքների եւ ծրագրերի, որոնք կարող են իրականացնել համապարփակ վերլուծություն կայքի ուժով:
Թե ինչ դուք պետք է իմանալ, թե ինչպես պետք է թալանել կայքը: Դա շատ պարզ է, որ անհրաժեշտ է տեղյակ լինել պոտենցիալ խոցելիությունը Ձեր նախագծի կամ կայքը. Հատկապես, եթե դա է առցանց խանութ օնլայն վճարման, որտեղ վճարումը օգտվողի տվյալները կարող են վտանգել հարձակվողի կողմից:
Մասնագիտական կրթության համար առկա տեղեկատվական անվտանգության անձնակազմի կկարողանան ստուգել դուրս կայքը մի շարք չափանիշների եւ խորության. Սկսած պարզ HTML-ներարկում եւ սոցիալական ինժեներիայի եւ ֆիշինգի:
Similar articles
Trending Now