KompüterProqramlaşdırma

SQL injection nədir?

saytlar və web pages sayı durmadan artır. kim bilər bütün bu inkişafı üçün götürülmüşdür. Və təcrübəsiz Web developers tez-tez təhlükəli və köhnə kodu istifadə edin. Və cinayətkarlar və hakerlər üçün boşluqlar bir çox yaradır. onlar daha. SQL-injection - ən klassik zəifliklərin biri.

nəzəriyyəsi A bit

Bir çox insanlar şəbəkə saytları və xidmətləri əksəriyyəti SQL verilənlər bazası storage istifadə olunur ki, bilirik. Bu edir strukturlaşdırılmış query language məlumatların saxlanması nəzarət və idarə etmək üçün imkan verir. Oracle, MySQL, Postgre - verilənlər bazası idarəetmə sisteminin bazasında müxtəlif versiyaları var. Asılı olmayaraq adı və növü, eyni sorğu data istifadə edin. Bu potensial açığı yalan ki, burada. geliştirici düzgün idarə və təhlükəsiz tələb etmək uğursuz varsa, bir təcavüzkarın bu istifadə etmək və sonra bazasında daxil olmaq və xüsusi taktika istifadə edə bilərsiniz - və bütün site idarə edilməsi.

Belə halların qarşısını almaq üçün, düzgün kodu optimize və yaxından sorğu emal olunur bir şəkildə nəzarət etmək lazımdır.

SQL-injection yoxlayın

şəbəkə açığı varlığını yaratmaq üçün başa avtomatlaşdırılmış proqram sistemlərinin çəkisi var. Amma özünüz bir sadə çek həyata keçirmək mümkündür. Bunu etmək üçün, test sites biri getmək və ünvanı bar bir verilənlər bazası səhv səbəb üçün cəhd. Məsələn, saytda script sorğu idarə edə bilməz və onları kəsmək yoxdur.

Məsələn, / index.php var nekiy_sayt? Id = 25

en asan yol - quote sonra 25 qoymaq və sorğu göndərmək üçün. heç bir səhv, ya site və filter meydana gəldi varsa bütün sorğu düzgün idarə olunur, və ya onların çıxış ayarları aradan. bir səhifə problemləri ilə yeniden, onda SQL-injection açığı var.

o, aşkar sonra, siz onu qurtarmaq üçün cəhd edə bilərsiniz.

haqqında bir az bilmək üçün bu açığı ehtiyac həyata keçirilməsi üçün SQL-sorğu komanda. Onlardan biri - UNION. Bu, bir neçə sorğu nəticələri bir araya gətirir. Beləliklə, biz masa sahələrin sayı hesablamaq olar. NÜMUNƏ ilk sorğu edir:

  • nekiy_sayt / index.php? id = 25 UNION SELECT 1.

Əksər hallarda, bu rekord bir səhv yaratmaq lazımdır. Bu sahələrin sayı, onların dəqiq sayı yaratmaq mümkündür 1 və ya daha çox variantları seçilməsi Beləliklə, 1 bərabər deyil o deməkdir ki:

  • nekiy_sayt / index.php? id = 25 UNION SELECT 1,2,3,4,5,6.

səhv artıq görünür zaman ki, bu sahələrin sayı tahmin o deməkdir ki, edir.

Bu problemin alternativ həlli də var. Məsələn, sahələrdə çox sayda - 30, 60 və ya 100 Bu skript GROUP BY. Bu qruplar misal id üçün hər hansı səbəbiylə sorğu, nəticələri:

  • nekiy_sayt / index.php? id = 5 BY 25 GROUP.

səhv qəbul olunmayıb, onda sahələri daha çox 5. Belə ki, kifayət qədər geniş variantları əvəz, bu, həqiqətən onların neçə hesablamaq mümkündür.

Bu, misal SQL inyeksiya - öz saytında test özlərini cəhd etmək istəyirəm başlayanlar üçün. Bu Cinayət Məcəlləsinin bir mövcud məqaləyə icazəsiz daxil olmaq üçün ki, xatırlamaq vacibdir.

inyeksiya əsas növləri

bir neçə qaydalara SQL-inyeksiya ilə açığı həyata keçirir. Next ən məşhur üsulları var:

  • UNION sorğu SQL injection. Bu tip bir sadə misal artıq yuxarıda baxılmışdır. Bu, süzülür deyil daxil olan məlumatların yoxlanılması bir səhv həyata keçirilir.

  • Error-based SQL injection. Adı nəzərdə tutur kimi, bu cür də syntactically düzgün tərtib ifadələr göndərilməsi, bir səhv edir. Sonra SQL-injection həyata keçirilə bilər cavab başlıqlarını, təhlili ələ var.

  • Stacked SQL sorğu injection. Bu güvenlik açığı ardıcıl sorğu həyata tərəfindən müəyyən edilir. Bu nişanın sonunda əlavə ilə xarakterizə olunur ";". güzəştlər imkan, bu yanaşma tez-tez oxumaq və məlumat yazmaq və ya əməliyyat sistemi funksiyalarının həyata keçirilməsi daxil olmaq üçün həyata keçirilir.

SQL-zəifliklərin axtarış üçün proqram

SQL-injection üçün var, proqram adətən iki komponentləri var - bir site mümkün zəifliklərin üçün scan və məlumat daxil olmaq üçün istifadə edirlər. demək olar ki, bütün məşhur platformaları üçün bəzi alətlər var. Onların funksionallığı çox sizin SQL-injection çat veb yoxlanılması asanlaşdırır.

Sqlmap

ən verilənlər bazası ilə işləyir Çox güclü scanner. Bu SQL-injection həyata keçirilməsi müxtəlif üsulları dəstəkləyir. Avtomatik olaraq parol hash krekinq və lüğətin tipini tanımaq imkanına malikdir. bir server indiki və funksional fayl upload və download.

Linux Quraşdırma əmrləri istifadə edilir:

  • git klon https://github.com/sqlmapproject/sqlmap.git sqlmap-dev,
  • cdsqlmap-dev /
  • ./sqlmap.py --wizard.

Windows üçün command line və qrafik istifadəçi interfeysi ilə bir seçim olaraq mövcuddur.

jSQL Injection

jSQL Injection - SQL zəifliklərin istifadə test üçün cross-platform vasitədir. Java yazılı, belə sistem JRE yüklü olmalıdır. sorğu, POST, header, cookie almaq idarə edə. Bu rahat qrafik interfeysi var.

Aşağıdakı kimi bu proqram paketi quraşdırılması:

wget https://github.com/`curl -s 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 "| baş n 1`

Başlanması jar ./jsql-injection-v*.jar komanda java istifadə edir

SQL-açığı test site başlamaq üçün, siz top sahəsində ünvanı daxil edin lazımdır. Onlar almaq və POST üçün ayrı-ayrı var. müsbət nəticə ilə, mövcud masalar siyahısı sol pəncərə görünür. Siz onları görmək və bəzi məxfi məlumat öyrənə bilərsiniz.

tab «Admin səhifə» inzibati panelləri tapmaq üçün istifadə olunur. xüsusi şablonları vasitəsilə bu avtomatik olaraq sistem imtiyazlı istifadəçilər qeyd axtarış. Onlardan siz parol yalnız bir hash əldə edə bilərsiniz. Lakin o, proqramın qutusu var.

bütün zəifliklərin və injection zəruri sorğular tapmaq sonra, alət server fayl doldurmaq və ya, əksinə, oradan yükləmək üçün imkan verir.

SQLi Damper V.7

Bu proqram - Asan SQL zəifliklərin tapmaq və həyata keçirilməsi üçün alət istifadə etmək. BMT qondarma Dorcas əsaslanır istehsal edir. Onların siyahısı İnternet bilər. SQL-injection üçün Dorca - Bu axtarış sorğu xüsusi şablonları var. Onların köməyi ilə, siz hər hansı bir axtarış mühərriki vasitəsilə potensial həssas saytına tapa bilərsiniz.

təlim üçün Tools

Itsecgames.com saytda nümunə SQL injection və onu yoxlamaq üçün necə göstərir imkan verir ki, alətlər bir xüsusi set var. istifadə etmək üçün, download və yüklemek üçün lazımdır. arxiv saytın strukturu faylları bir sıra ehtiva edir. yüklemek üçün bu Apache web server, MySQL və PHP dəsti mövcud sistemi lazımdır.

bir web server qovluq arxiv açmaq, bu yüklerken daxil ünvana getmək üçün var proqram. istifadəçi qeydiyyatı ilə səhifə. Burada məlumat daxil edin və "Yarat" basın lazımdır. yeni ekran üçün istifadəçi hərəkət, sistem test hallarda bir seçin ister. Onların arasında həm inyeksiya, və bir çox digər test tapşırıqlarının təsvir var.

Bu SQL-injection type GET / Axtarış nümunə nəzərə dəyər. Burada «Hack» onu seçin və basın lazımdır. Əvvəl istifadəçi görünür və bir film saytın axtarış sözü imitasiya edəcək. düzmək üçün kino uzun ola bilər. Ancaq 10. Məsələn var, Iron Man daxil etmək üçün cəhd edə bilərsiniz. Bu film, sonra site işləyir və ehtiva masalar göstərir. İndi biz xüsusi quote, xüsusi simvollar script filtreler əgər yoxlamaq lazımdır. Bunu etmək üçün, ünvanı bar "əlavə edin." Bundan başqa, bu filmin adı sonra edilməlidir. site bir səhv Error verəcək: Siz SQL syntax bir səhv var; simvol hələ düzgün ele deyil ki xətti 1 at 'yaxın'% 'istifadə hüququ sintaksis üçün MySQL server versiyasını uyğun dərslik edin. Belə ki, sizin əvəz cəhd edə bilərsiniz. Amma biz ilk sahələrin sayı hesablamaq lazımdır. & Action = axtarış - 2 http://testsites.com/sqli_1.php?title=Iron+Man 'sifariş: Bu quotes sonra təqdim edilir bu qaydada istifadə olunur.

Bu skript yalnız sahələrin sayı ikiqat defis digər müraciətlər atılır olmalıdır server deyir böyük 2-dən edir film, haqqında məlumat göstərilir. İndi kimi uzun səhv çap kimi artan əhəmiyyətini qoyaraq həyata düzmək lazımdır. Sonda, bu sahələri 7 olacaq çevrilir.

İndi bazasının həyata faydalı bir şey almaq üçün vaxt var. yüngül forma gətirilməsi, ünvan bölməsinə sorğu dəyişdirmək edəcək:) () (http://testsites.com/sqli_1.php?title=Iron+Man ittifaqı 1 seçin bazası istifadəçi, 4, parol, 6, 7 istifadəçilər - & action = axtarış. asanlıqla online xidmətləri birini istifadə edərək aydın rəmzləri çevrilə bilər parol hashes ilə simli göstərmək olar onun həyata keçirilməsi nəticəsində. A bir az conjured və belə saytın admin kimi, başqasının giriş əldə edə bilərsiniz bir giriş ilə bir sahədə adı qədər seçilmiş.

məhsul təcrübə olan bir çəki növ injection növləri var. Bu real sites şəbəkəsində bu bacarıqları tətbiq cinayət ola bilər ki, yadda olmalıdır.

Injection və PHP

bir qayda olaraq, PHP-kodu və istifadəçi gələn zəruri emal istekleri üçün məsuliyyət daşıyır. Buna görə də, bu səviyyədə siz PHP SQL-injection qarşı müdafiə qurmaq lazımdır.

Birincisi, bunu etmək lazım olan əsasında bir neçə sadə göstərişləri verək.

  • Data həmişə bazasında yerləşdirilmiş əvvəl emal olunmalıdır. Bu, mövcud ifadələri istifadə edərək, və ya əl sorğu təşkil tərəfindən edilə bilər. Burada da sayısal dəyərlər tələb olunur növü çevrilir ki, nəzərə almaq lazımdır;
  • Yol müxtəlif nəzarət strukturları istenir.

İndi SQL-injection qarşı qorumaq üçün MySQL sorğu tərtib qaydaları haqqında bir az.

sorğu hər hansı bir ifadələri tərtib bu SQL açar sözlər data ayırmaq vacibdir.

  • masa HARADA name = Zerg seçin *.

hər hansı bir sahədə adı, belə ki, quotes onu əlavə etmək lazımdır - bu konfiqurasiya, sistem Zerg ki, ola bilər.

  • SELECT * masa HARADA name = "Zerg.

dəyəri özü quotes ehtiva edir Lakin, dəfə var.

  • SELECT * masa HARADA name = "Côte d'Ivoire.

Burada yalnız Côte d hissəsi idarə və istirahət komanda, əlbəttə, kimi qəbul edilə bilər. Buna görə də, bir səhv baş verir. Sonra seçim məlumatların bu cür lazımdır. \ - Bunu etmək üçün, bir backslash istifadə edin.

  • SELECT * masa HARADA name = "cat-d \ 'Ivoire.

Yuxarıda göstərilən bütün satır aiddir. fəaliyyət bir sıra yer tutur, onda hər hansı bir quotes və ya slashes lazım deyil. Lakin, onlar zorla istədiyiniz data növü səbəb tələb olunmalıdır.

sahəsində ad backquotes əlavə edilməlidir tövsiyələr var. Bu simvol "~" a tilde ilə yanaşı, klaviatura sol tərəfində. Bu MySQL dəqiq söz sahəsində adını ayırmaq bilər ki, təmin edir.

data ilə Dynamic iş

Çox tez-tez, dinamik sorğu istifadə edərək verilənlər bazası, hər hansı bir məlumat almaq üçün. Məsələn:

  • SELECT * masa HARADA sayı = '$ nömrəsi.

Burada dəyişən $ sayı sahəsinin dəyərinin müəyyən kimi qəbul edilir. bu Côte d'Ivoire "olur, əgər nə olacaq? Error.

Bu problem qarşısını almaq üçün, əlbəttə, "sehrli quotes" parametrləri daxil edə bilərsiniz. Amma indi data zəruri və lazım deyil nümayiş olunacaq. code əl ilə yazılı əgər Bundan əlavə, sistem özü krekinq davamlı yaratmaq üçün bir az daha çox vaxt sərf edə bilər.

bir çizgi müstəqil əlavə mysql_real_escape_string istifadə edə bilərsiniz.

$ Sayı = mysql_real_escape_string ($ nömrəsi);

$ Buraxılış = mysql_real_escape_string ($ il);

$ Query = "masa INSERT INTO (sayı, il, sinfi) DƏYƏRLƏR ( '$ sayı', '$ il, 11)".

kodu və həcmi artıb, hələ olsa da potensial çox daha təhlükəsiz işləmək olardı.

placeholders

Placeholders - sistem bu bir xüsusi funksiyası əvəz etmək lazımdır yer olduğunu tanıyır olan markerlər bir növ. Məsələn:

$ Sate = $ mysqli-> hazırlamaq ( "SELECT Rayon Nömrəsi HARADA Adı =?");

$ Sate-> bind_param ( "s", $ nömrəsi);

$ Sate-> (icra);

Kodu Bu bölmədə təlim tələb şablon edir və sonra dəyişən sayı bağlar və onu həyata keçirir. Bu yanaşma sorğu emal və onun həyata keçirilməsinə split imkan verir. Belə ki, zərərli kodu istifadə xilas ola bilər SQL- var.

Nə güc bir təcavüzkarın

Protection System - laqeyd edilə bilməz çox mühüm amildir. Əlbəttə ki, bir sadə biznes kartı site bərpa etmək asan olacaq. Və bu böyük portal, xidmət, forum olur? Əgər siz təhlükəsizlik barədə düşünmürəm nəticələri hansılardır?

Birincisi, bir hacker də bazasının bütövlüyünü qıra bilər və tamamilə aradan qaldırılması. site administrator və ya hoster bir yedek etmək deyil, əgər, siz ağır dəfə olacaq. Hər şeydən əvvəl, bir sayt krekinq bir çağrılmamış qonaq, eyni server dərc digər bilərsiniz.

Next ziyarətçi şəxsi məlumat oğurluq edir. Necə istifadə etmək - hər şey yalnız bir hacker təsəvvür ilə məhdudlaşır. Amma hər halda, nəticələri çox xoş olmayacaq. Xüsusilə də əgər maliyyə məlumatları olan.

Həmçinin, təcavüzkar verilənlər bazası özünüz daxil edə bilərsiniz və sonra onun qaytarılması üçün pul tələb.

site administrator adından dezinformasiya istifadəçilər onlar olmayan şəxs də mümkün fırıldaqçılıq faktlar kimi mənfi nəticələri ola bilər.

nəticə

Bu məqalədə Bütün məlumatlar informasiya məqsədləri yalnız üçün nəzərdə tutulmuşdur. Bu yalnız zəifliklərin algılar zaman öz layihələrini test və onları həll etmək üçün lazımdır istifadə edin.

SQL-injection aparmaq üçün necə texnikanın bir daha dərin öyrənilməsi üçün, SQL dilinin aktual tədqiqat imkanları və xüsusiyyətləri ilə başlamaq lazımdır. tərtib sorğu, açar sözlər, məlumat növləri və bütün istifadə kimi.

Həmçinin PHP və HTML elementləri funksiyaları əməliyyat anlaşma olmadan edə bilməz. əsas istifadə inyeksiya üçün həssas xal - bir ünvan line və müxtəlif axtarış sahəsində. PHP funksiyaları öyrənmək, tətbiq və xüsusiyyətləri üsulu səhvlər qarşısını almaq üçün necə anlamaq olacaq.

çox hazır proqram araçları olması site məlum zəifliklərin dərin təhlili üçün imkan verir. ən məşhur məhsulları biri - Kali linux. site gücü hərtərəfli təhlili həyata keçirə bilər alətləri və proqramları bir çox olan bir Linux-based əməliyyat sistemi, bu image.

Nə saytı hack necə bilmək lazımdır? Bu, çox sadə - Sizin layihə və ya web potensial zəifliklərin xəbərdar olmaq lazımdır. Bu ödəniş istifadəçi məlumatları bir təcavüzkar tərəfindən güzəşt edilə bilər online ödəmə ilə online mağaza edir, xüsusilə də əgər.

Mövcud informasiya təhlükəsizliyi personalının professional öyrənilməsi üçün meyarlar və dərinliyi bir sıra üçün site kontrol edə biləcəklər. sadə HTML-iynə və sosial mühəndislik və phishing başlayaraq.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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