KomputerProgramming

Apa injeksi saka SQL?

Nomer Camping lan kaca web sing wis akeh ajeg. Taken kanggo pangembangan kabeh sing bisa. Lan developer anyar kerep nggunakake kode aman lan lawas. Lan nggawe akèh loopholes kanggo kriminal lan hacker. Saka iku. Salah vulnerabilities paling klasik - SQL-injeksi.

A dicokot saka teori

Akeh wong sing ngerti yen mayoritas Camping lan layanan ing jaringan sing nggunakake panyimpenan database SQL. Iki basa pitakonan kabentuk sing ngijini sampeyan kanggo ngontrol lan ngatur panyimpenan data. Ana akeh macem-macem versi ing database sistem manajemen basis data - Oracle, MySQL, Postgre. Preduli saka jeneng lan jinis, padha nggunakake data pitakonan padha. Punika sing dumunung ing potensial lawan. Yen pangembang gagal nangani mlaku lan aman nyuwun, panyerangan bisa njupuk kauntungan saka iki lan nggunakake cara khusus kanggo gain akses kanggo database, lan banjur - lan kanggo kabeh Manajemen situs.

Kanggo supaya kahanan kuwi, sampeyan kudu mlaku ngoptimalake kode lan kanggo ngawasi rapet ing proses kang request lagi diproses.

Mriksa SQL-injeksi

Kanggo netepake ngarsane saka lawan ing jaringan sing bobote sistem lunak otomatis rampung. Nanging iku bisa kanggo nindakake mriksa prasaja kanthi manual. Kanggo nindakake iki, pindhah menyang salah siji saka test lan ing baris alamat kanggo nyoba kanggo nimbulaké kesalahan database. Contone, script ing situs ora bisa nangani request lan ora motong wong.

Contone, ana nekiy_sayt / index.php? Id = 25

Cara paling gampang - kanggo sijine 25 sawise Kutipan lan ngirim request. Yen ana kesalahan wonten, salah siji ing situs lan Filter kabeh panjalukan sing ditangani bener, utawa dipatèni ing setelan output sing. Yen kaca reloaded karo masalah, banjur lawan SQL-injeksi punika.

Sawise dheweke ketemu metu, sampeyan bisa nyoba kanggo njaluk nyisihaken saka iku.

Kanggo ngleksanakake perlu lawan iki ngerti sethithik bab tim SQL-pitakon. Salah siji saka wong - UNION. Ndadekke siji sapérangan hasil pitakonan menyang siji. Supaya kita bisa ngetung pirang-pirang lapangan ing meja. CONTO pitakonan kapisan:

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

Ing kasus paling, rekaman iki kudu nguripake kesalahan. Iki tegese pirang-pirang lapangan ora padha kanggo 1. Mangkono, milih opsi saka 1 utawa luwih, iku bisa kanggo netepake nomer sing pas:

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

Nalika kesalahan bakal ora ana maneh katon, iku ateges sing pirang-pirang lapangan kanggo guess.

Ana uga solusi alternatif kanggo masalah iki. Contone, nalika nomer akeh lapangan - 30, 60 utawa 100. printah iki GROUP BY. Iku kelompok asil query ing sembarang latar, contone id:

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

Yen kesalahan durung ditampa, banjur kothak luwih saka 5. Mangkono, opsi substituting saka sawetara nyedhaki sing godhongé amba, iku bisa kanggo ngetung carane akeh wong bener.

Iki conto SQL-injeksi - jangka sing pengin nyoba piyambak ing testing saka sawijining situs. Penting, kanggo elinga yen kanggo akses ora sah kanggo artikel liyane sing ana ing pidana Code.

Jinis utama injeksi

Ngleksanakake lawan dening SQL-injeksi ing saperangan embodiments. Sabanjure ana cara sing paling populer:

  • The Union query ing SQL injection. Conto prasaja saka jinis iki wis sinaoni ndhuwur. Iku temen maujud amarga kesalahan ing mriksa data mlebu, kang ora saring.

  • Error basis SQL injection. Minangka jeneng gawe katut, jinis iki uga migunakake kesalahan, ngirim ungkapan dumadi syntactically salah. Banjur ana interception saka header nanggepi, nganalisa kang bisa digawa metu mengko SQL-injeksi.

  • Dibandhingke pitakon SQL injection. lawan iki ditemtokake dening Performing panjalukan sukses. Punika ditondoi dening Kajaba ing mburi tandha ";". pendekatan iki asring dipun ginakaken kanggo ngakses implementasine saka maca lan nulis data utawa sistem operasi fungsi, yen hak istimewa ngidini.

Piranti lunak kanggo nggoleki SQL-vulnerabilities

Apa ana kanggo SQL-injeksi, program biasane duwe loro komponen - situs Mindai bisa vulnerabilities lan digunakake kanggo gain akses kanggo data. Ana sawetara pribadi kanggo platform meh kabeh dikenal. fungsi sing nemen ndadekke gampang mriksa situs kanggo kokain SQL-injeksi Panjenengan.

Sqlmap

scanner banget kuat sing dianggo karo paling database. Nanging ndhukung macem-macem cara saka implementasine saka SQL-injeksi. Iku nduweni kemampuan kanggo otomatis ngenali jinis sandi ngrembug gawe lan kamus. Saiki lan fungsi upload file lan download saka server.

Instalasi ing Linux wis dileksanakake nggunakake printah:

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

Kanggo Windows cumawis minangka pilihan karo baris printah lan antarmuka panganggé grafis.

jSQL Injection

jSQL Injection - a alat salib-platform kanggo Testing nggunakake vulnerabilities SQL. Ditulis ing Jawa, supaya sistem kudu diinstal JRE. Bisa kanggo nangani njaluk panjalukan, POST, header, cookie. Wis antarmuka grafis trep.

Pamasangan lunak paket iki minangka nderek:

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 '| sirah-n 1`

Launching kanthi nggunakake printah java -jar ./jsql-injection-v*.jar

Supaya kanggo miwiti situs test ing SQL-lawan, sampeyan kudu ngetik alamat ing lapangan ndhuwur. Padha kapisah kanggo GET lan POST. Kanthi asil positif, dhaptar tabel dhuwur bakal katon ing jendhela ngiwa. Sampeyan bisa ndeleng lan sinau sawetara informasi rahasia.

tab «kaca Admin» digunakake kanggo nemokake Panel administratif. Ing kanthi cithakan khusus kanthi otomatis nggoleki sistem cathetan pangguna kang ndarbeni hak istimewa. Saka wong-wong mau bisa mung ngrembug saka sandhi. Nanging wis ing kothak piranti saka program.

Sawise nemokake kabeh vulnerabilities lan injeksi pitakonan perlu, alat bakal ngidini server kanggo isi ing file utawa, Kosok baline, download saka ing kono.

SQLi dumper v.7

Program iki - gampang kanggo nggunakake alat kanggo nemokake lan penerapan vulnerabilities SQL. Iku mrodhuksi PBB adhedhasar supaya disebut-Dorcas. dhaptar sing bisa ditemokaké ing internet. Dorca kanggo SQL-injeksi - iki Cithakan khusus saka pitakon search. Kanthi bantuan, sampeyan bisa nemokake situs potensi ngrugekke liwat sembarang search engine.

Tools kanggo latihan

Itsecgames.com ing situs ana pesawat khusus pribadi sing ngidini conto nuduhake apa SQL injection lan nyoba iku. Supaya entuk manfaat, punika perlu kanggo ngundhuh lan nginstal. Arsip ngandhut pesawat saka file, kang iku struktur ing situs iki. Kanggo nginstal kudu ing sistem ana pesawat saka Apache web server, MySQL lan PHP.

Unpack arsip ing folder web server, sampeyan kudu pindhah menyang alamat diketik yen nginstall iki lunak. A Kaca user. Kene sampeyan kudu ngetik informasi lan klik «Gawe». Obah pangguna kanggo layar anyar, sistem supaya sampeyan pilih salah siji saka kasus test. Antarane wong-wong mau ana loro diterangake dening injeksi, lan akeh item test liyane.

Iku worth considering conto jinis SQL-injeksi GET / Search. Kene sampeyan kudu milih lan klik «Hack». Sadurunge kita bakal katon, lan tiron search senar saka situs movie. Ngurutake film bisa dawa. Nanging ana mung 10. Contone, sampeyan bisa nyoba kanggo ngetik Iron Man. Iku bakal nuduhake film, banjur situs dianggo, lan tabel ngandhut. Saiki kita kudu mriksa yen saringan karakter khusus script, ing Kutipan tartamtu. Kanggo nindakake iki, nambah 'ing baris alamat. " Menapa malih, iki kudu rampung sawisé judhul film kang. Situs iki bakal menehi kesalahan kesalahan: Sampeyan kudu kesalahan ing ukara SQL Panjenengan; mriksa manual sing cocok kanggo versi server MySQL kanggo pangrinciané hak migunakaké near '%' 'ing baris 1, kang nyatakaké karakter isih ora ditangani bener. Supaya sampeyan bisa nyoba kanggo ngganti penjenengan. Nanging kita kudu ngetung pirang-pirang lapangan. Kang digunakake kanggo iki supaya dening, kang wis ngenalaken sawise kuotasi: http://testsites.com/sqli_1.php?title=Iron+Man 'supaya dening 2 - & action = panelusuran.

Printah iki mung nuduhake informasi bab film, sing, sing pirang-pirang lapangan sing luwih gedhé saka 2. hyphen pindho ngandhani server sing panjalukan kudu dibuwak. Saiki kita kudu Ngurutake metu, panggolekan nambah wigati anggere kesalahan ora dicithak. Ing pungkasan, iku dadi metu sing kothak bakal 7.

Saiki iku wektu kanggo njaluk soko migunani saking basa. Bakal rada ngowahi request ing baris alamat, nggawa menyang wangun: Uni http://testsites.com/sqli_1.php?title=Iron+Man 'pilih 1, database (), user (), 4, sandi, 6, 7 saka kedhaftar - & action = panelusuran. Minangka asil menehi implementasine bakal nampilake senar karo hashes sandi, kang bisa gampang diowahi menyang simbol dingerteni kanthi nggunakake layanan online. A conjured sethitik lan ngangkat munggah jeneng lapangan mlebu, sampeyan bisa entuk akses menyang entri wong liya iku, kayata admin ing situs iki.

Prodhuk wis jinis injeksi spesies bobot, kang kanggo laku. Sampeyan kudu eling sing aplikasi saka skills iki ing jaringan ing nyata bisa dadi pelanggaran pidana.

Injeksi lan PHP

Minangka aturan, ing PHP-kode lan tanggung jawab kanggo panjalukan Processing perlu teka saka pangguna. Mulane, ing tingkat iki sampeyan kudu mbangun pertahanan marang SQL-injeksi ing PHP.

Pisanan, ayo kang menehi pedoman prasaja, ing basis saka kang perlu nglakoni.

  • Data kudu tansah diproses sadurunge kang diselehake menyang database. Iki bisa rampung kanthi nggunakake ungkapan sing ana, utawa dening ngatur pitakon kanthi manual. Kene, banget, kudu njupuk menyang akun kasebut ing angka numerik sing diowahi kanggo jinis sing perlu;
  • Nyingkiri dijaluk warna struktur kontrol.

Saiki sethithik bab aturan saka kompilasi pitakon ing MySQL kanggo ngreksa marang SQL-injeksi.

Ing teken wiwitan ungkapan kanggo query iku penting kanggo misahake data saka tembung kunci SQL.

  • Pilih * FROM meja ngendi jeneng = Zerg.

Ing konfigurasi iki, sistem bisa mikir sing Zerg - jeneng lapangan sembarang, dadi sampeyan perlu kanggo muwuhi ing kuotasi.

  • Pilih * FROM meja ngendi jeneng = 'Zerg'.

Nanging, ana kaping yen nilai dhewe ngandhut kuotasi.

  • Pilih * FROM meja ngendi jeneng = 'Côte d'Ivoire.

Kene mung nangani bagean Côte d, lan liyane bisa dipunsawang minangka tim, kang, mesthi, ora. Mulane, kesalahan ana. Sampeyan kudu jenis iki saka data screening. Kanggo nindakake iki, nggunakake backslash - \.

  • Pilih * FROM meja ngendi jeneng = 'cat-d \' Ivoire '.

Kabeh saka ndhuwur nuduhake larik. Yen tumindak njupuk Panggonan karo nomer, banjur ora perlu sembarang kuotasi utawa slashes. Nanging, padha kudu sing konangan mimpin kanggo jinis data sing dipengini.

Ana Rekomendasi sing jeneng lapangan kudu terlampir ing backquotes. Simbulé ing sisih kiwa keyboard, bebarengan karo tilde "~". Iki kanggo mesthekake yen MySQL kanthi bisa mbedakake jeneng lapangan saka kunci.

karya Dynamic karo data

Kerep banget, kanggo njaluk data saka database nggunakake pitakon, kui mbosenke. Contone:

  • Pilih * FROM meja ngendi nomer = '$ nomer'.

Kene, ing $ nomer global wis liwati nentokake ing Nilai saka lapangan. Apa bakal kelakon yen nemu 'Côte d'Ivoire'? Kesalahan.

Kanggo supaya alangan iki, mesthi, sampeyan bisa kalebu ing "kuotasi Piandel" setelan. Nanging saiki data bakal dilindungi ngendi perlu lan ora perlu. Kajaba iku, yen kode ditulis dening tangan, sampeyan bisa nglampahi wektu sethitik liyane kanggo nggawe tahan kanggo gawe sistem dhewe.

Kanggo Kajaba sawijining motong sing bisa nggunakake mysql_real_escape_string.

$ Number = mysql_real_escape_string ($ nomer);

$ Year = mysql_real_escape_string ($ taun);

$ Query = "masang menyang meja (nomer, taun, kelas) angka ( '$ nomer', '$ taun', 11)".

Senajan kode lan tambah ing volume, durung duweni potensi iku bakal bisa luwih aman.

placeholders

Placeholders - a jenis pelaku sing sistem ngenali sing iki panggonan sampeyan kudu sulih fungsi khusus. Contone:

$ Sate = $ mysqli-> nyiapake ( "District Pilih saka Number ngendi ciptanipun?");

$ Sate-> bind_param ( "s", $ nomer);

$ Sate-> nglakokaké ();

bagean saka kode njupuk latihan request cithakan banjur njiret nomer global, lan wis kaleksanan iku. pendekatan iki ngidini sampeyan kanggo pamisah Processing pitakonan lan menehi implementasine. Mangkono, iku bisa disimpen saka nggunakake kode angkoro sing SQL-.

Apa bisa panyerangan

Sistem Protection - faktor penting banget, kang ora bisa nguciwakake. Mesthi, situs kertu bisnis prasaja bakal luwih gampang kanggo mulihake. Lan yen sing Warta amba, layanan, forum? Apa sing jalaran yen ora mikir bab keamanan?

First, hacker bisa break integritas loro basa lan mbusak iku rampung. Lan yen administrator situs utawa Hoster ora nggawe serep, sampeyan bakal duwe kaping hard. Ndhuwur kabeh, lan ngaco, gawe situs single, bisa pindhah menyang liyane dikirim ing server padha.

Sabanjure iku nyolong informasi pribadhi saka pengunjung. Carane nggunakake - kabeh diwatesi mung dening bayangan hacker. Nanging ing kasus, jalaran ora bakal banget penake. Utamané yen sing informasi financial.

Uga, penyerang bisa nggabung database dhewe lan banjur extort dhuwit kanggo sawijining bali.

kedhaftar misinformation atas saka pangurus situs, wong lagi ora kang, uga bisa dadi jalaran negatif minangka bisa bukti penipuan.

kesimpulan

Kabeh informasi ing artikel iki kasedhiya kanggo tujuan pawarto mung. Gunakake mung perlu kanggo nyoba proyèk dhewe nalika ndeteksi vulnerabilities lan alamat mau.

Kanggo sinau luwih ing-ambane saka teknik carane tumindak SQL-injeksi, iku perlu kanggo miwiti karo Kapabilitas riset nyata lan fitur saka basa SQL. Minangka pitakon nyawiji, keywords, jinis data, lan nggunakake kabeh.

Uga ora bisa apa tanpa mangerténi operasi PHP lan unsur HTML fungsi. Panggunaan utami TCTerms ngrugekke kanggo injeksi - baris alamat, lan macem-macem lapangan panelusuran. Learning fungsi PHP, cara saka implementasine lan fitur bakal tokoh metu carane supaya kesalahane.

Ing ngarsane akeh pribadi lunak siap-digawe ngidini kanggo ing-ambane analisis ing vulnerabilities situs dikenal. Salah produk paling populer - kali linux. Iki gambar saka sistem operasi Linux basis, kang ngemot nomer akeh pribadi lan program sing bisa nindakake analisis saka kekuatan situs.

Apa sampeyan kudu ngerti carane hack situs? Iku banget prasaja - iku perlu weruh ing vulnerabilities potensial saka project utawa situs. Utamané yen nyimpen online karo pembayaran online, endi data pembayaran pengguna bisa kompromi dening panyerangan.

Kanggo sinau profesional saka personil keamanan informasi ana bakal bisa mriksa metu situs sing macem-macem kritéria lan ambane. Miwiti saka prasaja HTML-injeksi lan kanggo engineering sosial lan maneh Abu.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

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