КомпьютерлерБағдарламалау

SQL инъекция қандай?

Вебте сайттар мен беттердің саны тұрақты өсуде. келгеннің бәрі кім дамыту үшін қабылданған. Ал, жаңа бастаған Web әзірлеушілер жиі қауіпті және ескі код пайдаланыңыз. Және бұл қылмыскерлер мен хакерлерге қасапты көп жасайды. олар қарағанда. SQL-бүрку - ең классикалық осал бірі.

теориясының Сәл

Көптеген адамдар желі тораптары мен қызметтеріне көпшілігі SQL дерекқор сақтау пайдаланып отырғаныңызды білемін. Бұл болып табылады Structured Query Language сіз деректерді сақтауды бақылау және басқаруға мүмкіндік береді. Oracle, MySQL, Postgre - деректер базасын басқару жүйесі деректер базасын көптеген әр түрлі нұсқалары бар. Қарамастан атауы мен түрі, олар бір сұрау деректерді пайдаланады. Бұл әлеуетті осалдық жатыр осы жерде. әзірлеуші сұратуға дұрыс және қауіпсіз өңдеуге алмады болса, шабуылшы осы артықшылығын және деректер базасына қол жеткізу үшін арнайы тактикасын пайдаланыңыз, содан кейін болады - және барлық сайт басқару.

Осындай жағдайларды болдырмау үшін, сіз дұрыс кодын оңтайландыру және тығыз сұрау өңделеді онда түрде бақылау үшін қажет.

SQL-инъекцияға арналған тексеру

желісінде осалдық қатысуын қамтамасыз аяқталды автоматтандырылған жүйелерді бағдарламалық қамтамасыз ету салмағы бар. Бірақ ол қолмен қарапайым тексеру жүргізуге болады. Бұл әрекетті орындау үшін, дерекқор қате тудыруы тырысады полигондардың бірінде және мекенжай жолағында өтіңіз. Мысалы, сайтта скриптің сұрауын өңдеуге мүмкін емес және оларды түзеп емес.

Мысалы, / index.php жерде nekiy_sayt? ID = 25

ең оңай жолы - дәйексөз кейін 25 қоюға және сұрау жіберу үшін. жоқ қате пайда болды, онда кез келген сайт және сүзгі барлық сұраулары дұрыс өңделеді, немесе олардың шығу параметрлері өшірілген. бет проблемаларды қайта болса, онда 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 Бұл пәрмен GROUP BY. Ол мысал ID үшін кез келген негіздер бойынша сұрау, топтары нәтижелері:

  • 5 nekiy_sayt / index.php? ID = 25 GROUP.

қате алынған жоқ болса, онда өріс астам 5. қарағанда Осылайша, өте кең ауқымынан мүмкіндіктерді ауыстыру, ол шын мәнінде олардың қанша есептеуге болады.

Бұл мысал SQL-бүрку - оның сайттың тестілеу өздерін көріңіз келеді бастаушыларға арналған. Ол Қазақстан Республикасы Қылмыстық кодексінің басқа қолда бар бабына рұқсатсыз қол жеткізу үшін екенін есте маңызды.

инъекцияға негізгі түрлері

бірнеше нұсқада жүзеге асыру үшін SQL-инъекция арқылы осалдығын жүзеге асыру. Келесі ең танымал әдістері болып табылады:

  • UNION сұрауы SQL инъекция. Осы түрдегі Қарапайым мысал өзінде жоғары қаралды. Бұл салдарынан сүзілген емес, кіріс деректерді тексеру қатесі, іске асырылды.

  • Қате негізделген SQL инъекция. Атауынан көрініп, осы түрі, сондай-ақ синтаксистік қате тұрады өрнектерді жіберу, қате пайдаланады. Содан кейін кейінірек SQL-бүрку жүзеге асырылуы мүмкін жауап тақырыптарын, талдау ұстап бар.

  • Жинақталған SQL сұрау инъекцияны. Бұл осалдығын дәйекті сұрауларын орындау арқылы анықталады. Ол белгісі соңында Сонымен сипатталады «;». артықшылықтар оны мүмкіндік болса, бұл тәсіл жиі, оқу және жазу деректер немесе операциялық жүйе функцияларын жүзеге асыру кіру үшін жүзеге асырылады.

SQL-осалдық іздеу үшін бағдарламалық қамтамасыз ету

ықтимал осал сайт сканерлеу және деректерге қол жеткізу үшін оларды пайдалануға - SQL-инъекцияға арналған, бағдарлама әдетте екі компоненттен бар бар. барлық дерлік белгілі платформалар үшін кейбір құралдар бар. Олардың функционалдық айтарлықтай сіздің SQL-инъекцияны взломать веб-тексеру жеңілдетеді.

Sqlmap

Ең дерекқормен жұмыс өте қуатты сканер. Ол SQL-инъекцияға жүзеге асыру әртүрлі әдістерін қолдайды. Бұл автоматты түрде пароль хэш крекинг және сөздікке түрін тануға мүмкіндік бар. Бүгіні мен функционалдық файл жүктеуге және серверден жүктеп.

Linux параметрінде Орнату пәрмендерді пайдаланып жүзеге асырылады:

  • Git Clone https://github.com/sqlmapproject/sqlmap.git sqlmap-Dev,
  • cdsqlmap-Dev /,
  • ./sqlmap.py --wizard.

Windows жүйесі үшін пәрмен жолында графикалық пайдаланушы интерфейсі бар опция ретінде қол жетімді.

jSQL айдау

jSQL айдау - SQL осал пайдалану тестілеу үшін кросс-платформалы құралы. Java жазылған, сондықтан жүйесі JRE орнатылуы тиіс. сұрауларын, POST, тақырыбын, печенье GET өңдеуге қабілетті. Ол ыңғайлы графикалық интерфейсі бар.

Осы бағдарламалық қамтамасыз пакетін орнату болып табылады:

WGET https://github.com/`curl -лар HTTPS: //github.com/ron190/jsql-injection/releases | Grep-E -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} .jar «| басшысы-N 1`

Іске қосу ./jsql-injection-v*.jar -jar командалық Java пайдалану болып табылады

SQL-осалдық туралы полигонды бастау үшін, сіз жоғарғы саласындағы мекенжайды енгізу үшін қажет. Олар алуға және POST үшін жеке болып табылады. оң нәтижемен, қолда бар кестелер тізімі сол жақ терезесінде пайда болады. Сіз оларды көру және кейбір құпия ақпаратты біле аласыз.

қойындысы әкімшілік панельдер табу үшін пайдаланылатын «Admin бет». Бұл туралы арнайы үлгілерінің арқылы автоматты түрде жүйенің артықшылықты пайдаланушылар жазады іздейді. Оның ішінде сіз парольді ғана хэш алуға болады. Бірақ ол бағдарламаның жәшіктерінде бар.

барлық осалдық және айдау қажетті сұрау тапқан соң, құрал сервер сіздің файлда толтыру мүмкіндік береді немесе, керісінше, сол жерден оны жүктеп алады.

SQLi Dumper v.7

Бұл бағдарлама - SQL осалдық табуға және іске асыру үшін құралды пайдалану оңай. Ол БҰҰ-ның деп аталатын Табитаның негізделген шығарады. Олардың тізімі интернетте табуға болады. SQL-инъекцияға арналған Dorca - осы іздеу сұрауларының арнайы үлгілері болып табылады. Олардың көмегімен, сіз кез келген іздеу жүйесі арқылы ықтимал осал сайты таба аласыз.

оқыту үшін Құралдар

Itsecgames.com сайтында мысал SQL инъекция жасауға және оны сынақтан қалай көрсетеді береді құралдарының арнайы жиынтығы бар. пайдасын көру үшін, ол жүктеу және орнату қажет. мұрағат сайттың құрылымы файлдар жиынтығын қамтиды. орнату үшін, ол Apache веб-сервер, MySQL және PHP жиынтығы қолданыстағы жүйесінде қажет болады.

Веб сервер қалтасында мұрағатын ашыңыз, сіз осы орнату кезінде енгізілген мекенжайына өту керек бағдарламалық қамтамасыз ету. пайдаланушы тіркеу бет. Мұнда Сіз ақпаратты енгізуге және «Құру» батырмасын басу қажет. жаңа экранға пайдаланушыны жылжыту, жүйе сынақ жағдайларда бірін таңдауды ұсынады. Олардың арасында инъекция, және басқа да көптеген тест тапсырмаларын сипатталады екі бар.

Ол SQL-бүрку түрі GET / іздеу мысалын шығуымызға болады. Мұнда сіз оны таңдаңыз және «Hack» басу керек. Пайдаланушы алдында пайда болады, және кино сайттың іздеу жол имитациялық. фильмдерді сұрыптау ұзақ болуы мүмкін. Бірақ тек 10. Мысалы бар, сіз Iron Man енгізу көріңіз. Ол содан кейін сайт жұмыс істейді фильм, және ол бар үстелдер көрсетеді. Енді біз арнайы таңбалар сценарий сүзгілер, егер, атап айтқанда дәйексөз, тексеру керек. Бұл әрекетті орындау үшін, мекенжай жолағында «қосу». Сонымен қатар, бұл фильмнің атауынан кейін жасалуы тиіс. сайт қате Error береді: Сіз SQL синтаксисі қате бар ма; таңбалар әлі дұрыс емес екенін мәлімдейді желісі 1, кем '%' жақын пайдалану құқығы үшін синтаксисі сіздің MySQL сервер нұсқасына сәйкес келеді нұсқаулығын тексеріңіз. Сондықтан Сіз сұрауыңызды алмастыруға көріңіз. Бірақ біз бірінші кен санын есептеу керек. - & Action = іздеу http://testsites.com/sqli_1.php?title=Iron+Man '2 тәртіппен: Бұл әңгімелерде кейін енгізілді, ол арқылы осы бұйрықты үшін пайдаланылады.

Бұл пәрмен тек яғни, кен орындарының саны 2. артық, фильм туралы ақпаратты көрсетеді қос сызықша басқа сұраулар жойылуы тиіс серверін әңгімелейді. Енді біз ұзақ қате басылған емес, сондай-ақ арттыру маңыздылығын қою, түсінуге болады. Ақыр аяғында, бұл өріс 7 болады екен.

Қазір бұл базаны пайдалы нәрсе алуға уақыт. сәл нысанда оны тарту, мекен-жайы жолағында сұрау өзгертуге болады: http://testsites.com/sqli_1.php?title=Iron+Man «одақ 1 таңдаңыз, деректер базасын (), пайдаланушыға (), 4, пароль, 6, & Action = іздеу - пайдаланушылардың 7. оны жүзеге асыру нәтижесінде оңай онлайн қызметтерінің бірін пайдаланып түсінікті рәміздер айналдыруға болады пароль хэшам жолды көрсету еді. А жабыстырыңыз сәл және сіз мұндай сайттың әкімшісі ретінде басқа біреудің жазбасына қол, ие болады, логин бар өріс атауын алды.

өнім тәжірибеге туралы салмағы түрі бүрку түрлері бар. Ол нақты сайттарында желісінде осы дағдыларды қолдану қылмыстық іс болуы мүмкін екенін есте сақтау қажет.

Айдау және PHP

Әдетте, PHP-код және пайдаланушының түсетін қажетті сұрауларды өңдеуге жауапты болып табылады. Сондықтан, осы деңгейде сіз РНР SQL-инъекцияға қарсы қорғаныс салу қажет.

Біріншіден, АТ мұны қажет, оның негізінде бірнеше қарапайым нұсқауларды, берейін.

  • Деректер әрқашан базасына орналастырылатын бұрын өңделуі тиіс. Бұл қолданыстағы өрнектерді пайдалану арқылы, немесе қолмен сұрауларды ұйымдастыру арқылы, не істеуге болады. Мұнда да, сандық мәндер қажет түріне түрлендіріледі ескеру керек;
  • Аулақ түрлі бақылау құрылымдар сұралады.

SQL-инъекцияға қарсы қорғау үшін MySQL сұрауларды жасау ережелері туралы Енді аз.

сұрау кез келген өрнектерді құрастыру, бұл SQL кілт сөздер деректерді бөлу үшін маңызды болып табылады.

  • кестеден WHERE аты = Zerg * таңдау.

кез келген өрістің атауы, сондықтан сіз тырнақшаға жасалуы қажет - бұл конфигурациясы, жүйе Zerg деп ойлауы мүмкін.

  • кестеден WHERE аты = 'Zerg «SELECT *.

Алайда, мән өзі тырнақшаға құрамында есе бар.

  • кестеден WHERE аты = 'Кот-д'Ивуар «SELECT *.

Мұнда тек кот бөлігін өңдеуге, ал қалған команда ретінде қарастырыла алады, ол, әрине, мүмкін емес. Сондықтан, қате орын алады. Содан кейін сіз скринингтік деректер осы түрін қажет. Бұл әрекетті орындау үшін, кері қиғаш сызық пайдалану - \.

  • кестеден WHERE аты = 'мысық-D \' Ивуар «SELECT *.

барлық аталғандар жолдар жатады. іс-шаралар бірқатар орын алады, онда ол кез келген тырнақшаға немесе қиғаш сызықтарды қажет емес. Алайда, олар мәжбүрлеп қалаған деректер түріне әкелуі тиіс.

өріс атауы backquotes қоршалуы тиіс екенін ұсыныстар бар. Бұл белгі тильда «~» бірге, пернетақтаның сол жағында орналасқан. Бұл MySQL дәл сіздің түйінді сөздер өрісінің атын ажырата алатынын қамтамасыз ету болып табылады.

деректермен Динамикалық жұмыс

Өте жиі, динамикалық сұрауларды, пайдаланып дерекқорынан кез келген деректерді алу. Мысалы:

  • кестеден WHERE саны = '$ саны' * SELECT.

Мұнда, айнымалы $ саны өрісінің мәнін анықтау ретінде беріледі. ол Кот-д'Ивуар «алады, егер не болады? Қате.

Осы проблемаларды болдырмау үшін, әрине, сіз «сиқырлы тырнақшалар» параметрлері қамтуы мүмкін. қажет болған жағдайда емес, қажетті Бірақ қазір деректер көрсетіледі. коды қолмен жазылған Сонымен қатар, егер, сіз жүйені өзі крекинг төзімді құру сәл көп уақыт жұмсай алады.

қисық сызық тәуелсіз Сонымен үшін mysql_real_escape_string пайдалануға болады.

$ Саны = mysql_real_escape_string ($ нөмірі);

$ Жыл = mysql_real_escape_string ($ жыл);

$ Сұрау = «кестені кірістіру (нөмірі, жылы, сыныбы) VALUES ( '$ саны', '$ жыл, 11)».

коды Дегенмен мен көлемі өсті, әлі ықтимал ол әлдеқайда қауіпсіз жұмыс істейтін еді.

толтырғыштары

Толтырғыштар - жүйе бұл сіз арнайы функцияны ауыстыруға қажет орын болып табылатынын мойындайды, ол үшін маркерлер түрі. Мысалы:

$ Мемлекеттік = $ mysqli-> дайындау ( «? Name = санынан SELECT ауданы»);

$ Sate-> bind_param ( «S», $ нөмірі);

$ Sate-> орындау ();

код Бұл бөлімде оқыту сұрау үлгісін алады, содан кейін айнымалы санын байланыстырады, және оны орындайды. Бұл тәсіл сұрау өңдеуді және оны жүзеге асыруға бөлінген мүмкіндік береді. Осылайша, ол зиянды кодтың пайдалану сақтауға болады SQL- болып табылады.

Злоумышленник мүмкін

Қорғау жүйесі - ұмыт бола алмайды өте маңызды фактор. Әрине, қарапайым бизнес карточкасы сайт қалпына келтіру үшін оңай болады. Ал егер ол үлкен порталы, қызмет, форум болып табылады? Егер сіз қауіпсіздік туралы емес деп ойлаймын, егер салдары қандай?

Біріншіден, хакерлік базасын екі тұтастығын бұзуға болады және оны толығымен алып тастаңыз. Сайт әкімшісі немесе хостер қосалқы көшірме жасау емес, егер мен, сіз қатты рет болады. Ең бастысы, қаскүнем, бір сайтты крекинг, сол серверде орналастырылған басқа баруға болады.

Келесі келушілердің жеке ақпаратты ұрлау болып табылады. қалай пайдалануға - бәрі тек хакерлердің қиял арқылы шектеледі. Бірақ, кез келген жағдайда, салдары өте жағымды болмайды. Әсіресе қаржылық ақпаратты қамтылған болса.

Сондай-ақ, шабуылшы дерекқор өзіңіз біріктіру, содан кейін оның қайтару үшін ақша тартып алады.

Сайт әкімшісінің атынан жалған мәлімет пайдаланушылар, олар болып емес, адам, сондай-ақ, мүмкін алаяқтық фактілері ретінде теріс салдары болуы мүмкін.

қорытынды

Осы мақаладағы барлық ақпарат тек ақпараттық мақсаттарда беріледі. ол осалдық анықтағанда өз жобаларын тексеру және оларды шешу қажет ғана пайдаланыңыз.

SQL-инъекцияны жүргізу қалай әдістерін тереңірек зерттеу үшін, ол нақты ғылыми-зерттеу мүмкіндіктері мен SQL тілі ерекшеліктерімен бастау қажет. құрастырылған сұрау, кілт сөздер, деректер түрлері, және оған барлық пайдалану.

Сондай-ақ, PHP және HTML элементтері функцияларын жұмысын түсіну мүмкін емес. инъекцияға арналған бастапқы пайдалану осал балл - мекен-жай жолында, және әр түрлі іздеу өрісі. PHP функцияларды үйрену, іске асыру және ерекшеліктерін тәсілі қателерді болдырмау үшін қалай анықтау болады.

Көптеген дайын бағдарламалық құралдарды болуы сайты белгілі осал туралы егжей-тегжейлі талдау үшін мүмкіндік береді. Қали Linux - ең танымал өнімдердің бірі. сайт беріктігін кешенді талдау жүргізе алады құралдар мен бағдарламаларды үлкен санын қамтитын Linux-негізделген амалдық жүйесі, Бұл сурет.

Сіз сайты взломать қалай нені білу қажет? ол сіздің жобаның немесе веб-әлеуетті осалдықтар хабардар болуы қажет - Ол өте қарапайым. төлем пайдаланушы деректер қаскүнем күмәнді болады онлайн төлеу, бар интернет-дүкен, әсіресе, егер.

қолданыстағы ақпараттық қауіпсіздік кадрларды кәсіби зерттеу үшін өлшемдер мен тереңдігі әр түрлі сайты тексеру мүмкіндігіне ие болады. қарапайым HTML-инъекцияға бастап және әлеуметтік инжиниринг және фишинг үшін.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 kk.unansea.com. Theme powered by WordPress.