Uji coba Pikeun vulnerabilities suntik SQL

Serangan suntik SQL pasang aksi resiko rongkah ka aplikasi wéb anu gumantung kana hiji basis data backend keur ngahasilkeun kandungan dinamis. Dina tipe ieu serangan, hacker ngamanipulasi hiji aplikasi wéb dina usaha nyuntik paréntah SQL sorangan kana eta dikaluarkeun ku databés. Pikeun conto, ningali Serangan suntik artikel SQL on basis data. Dina artikel ieu, urang nyandak hiji katingal di sababaraha cara anjeun bisa nguji aplikasi wéb anjeun keur ngabedakeun aranjeunna geus rentan ka serangan SQL suntik.

Otomatis SQL suntik Nyeken

Hiji kamungkinan anu ngagunakeun hiji aplikasi wéb kerentanan scanner otomatis, kayaning HP urang WebInspect, IBM urang AppScan atanapi Hailstorm Cenzic urang. parabot ieu sadayana nawiskeun gampang, cara otomatis cara analisa aplikasi wéb anjeun poténsi vulnerabilities SQL suntik. Sanajan kitu, aranjeunna geus rada mahal, ngajalankeun di nepi ka $ 25,000 per korsi.

Tés suntik Manual SQL

Naon pamekar aplikasi goréng pikeun ngalakukeun? Anjeun sabenerna bisa ngajalankeun sababaraha tés dasar pikeun evaluate aplikasi wéb anjeun vulnerabilities suntik SQL maké nanaon leuwih ti hiji web browser. Kahiji, hiji kecap tina caution: tes Abdi nerangkeun ngan néangan dasar flaws SQL suntik. Éta moal ngadeteksi téhnik canggih tur nu rada tedious ngagunakeun. Lamun can mampuh dinya, balik kalawan scanner otomatis. Sanajan kitu, lamun henteu tiasa ngadamel anu tag harga, nguji manual mangrupakeun hambalan kahiji hébat.

Cara panggampangna pikeun evaluate naha hiji aplikasi nyaeta rawan anu ékspérimén kalawan serangan suntik innocuous yén moal sabenerna ngarugikeun databés anjeun lamun aranjeunna sukses tapi bakal nyadiakeun Anjeun sareng bukti yén anjeun kedah ngabenerkeun masalah. Contona, anggap anjeun kungsi aplikasi wéb basajan nu Sigana nepi hiji individu dina database a jeung nyadiakeun informasi kontak salaku hasilna. Kaca nu bisa nganggo format URL di handap:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike

Bisa nganggap yén kaca ieu ngalakukeun hiji lookup database, maké query sarupa di handap ieu:

telepon milih tina diréktori WHERE = lastname 'chapple' na firstname = 'Mike'

Hayu urang ékspérimén kalawan ieu bit. Kalawan asumsi urang luhur, urang tiasa ngadamel robah basajan ka URL nu tés pikeun serangan suntik SQL:

http://myfakewebsite.com/directory.asp?lastname=chapple&firstname=mike'+AND+(select+count(*)+from+fake)+%3e0+OR+'1'%3d'1

Upami aplikasi wéb teu acan ditangtayungan leres ngalawan SQL suntik, éta saukur plugs ngaran hareup palsu ieu kana pernyataan SQL eta executes ngalawan Cikajang, hasilna:

telepon milih tina diréktori WHERE = lastname 'chapple' na firstname = 'Mike' AND (pilih count (*) ti palsu)> 0 OR '1' = '1'

Anjeun bakal aya bewara yén sintaksis luhur mangrupakeun saeutik béda ti nu aya dina URL aslina. Kuring nyokot kamerdikaan teh tina jalan ngarobah variabel URL-disandikeun pikeun equivalents ASCII maranéhna pikeun nyieun gampang nuturkeun conto. Contona,% 3d mangrupa URL-encoding pikeun karakter éta '='. Kuring ogé ditambahkeun sababaraha ngarecah garis pikeun tujuan sarupa.

Mengevaluasi Hasil

test asalna mun anjeun coba pikeun muka éta Kalurahan jeung URL nu didaptarkeun di luhur. Upami aplikasi wéb anu well-behaved, éta bakal jajan kaluar tanda petik tunggal ti input saméméh ngalirkeun pamundut ka pangkalan data. Ieu ngan saukur bakal hasil dina lookup aneh keur batur ku ngaran hareup anu ngawengku hiji kebat SQL! Anjeun bakal ningali hiji pesen kasalahan ti aplikasi sarupa hiji handap:

Kasalahan: No pamaké kapanggih kalawan ngaran Mike + AND + (pilih count + (*) + tina palsu +) +% 3e0 + OR + 1% 3d1 Chapple!

Di sisi séjén, lamun aplikasi anu geus rentan ka SQL suntik, éta bakal maot pernyataan nu langsung ka Cikajang, hasilna salah sahiji dua kemungkinan. Kahiji, upami server anjeun geus wincikan seratan kasalahan diaktipkeun (nu kudu!), Anjeun bakal ningali hiji hal kawas kieu:

Microsoft Ole DB Provider pikeun ODBC Pembalap kasalahan '80040e37' [Microsoft] [ODBC SQL Server Supir] [SQL Server] ngaran obyék sah 'palsu'. /directory.asp, garis 13

Di sisi séjén, lamun web server anjeun henteu nembongkeun seratan kasalahan lengkep, Anjeun bakal meunang hiji kasalahan leuwih umum, kayaning:

Server Kasalahan internal server The encountered kasalahan internal atanapi misconfiguration sarta éta bisa ngalengkepan pamundut anjeun. Mangga wartosan administrator server pikeun nginpokeun tina waktos kasalahan lumangsung sarta nanaon anjeun bisa geus dipigawé yen mungkin geus ngabalukarkeun kasalahan. Inpo ngeunaan kasalahan ieu bisa jadi teu sadia dia log kasalahan server.

Lamun nampi boh salah sahiji dua kasalahan luhur, aplikasi anjeun rentan ka serangan suntik SQL! Sababaraha lengkah anu tiasa nyandak ngajaga aplikasi Anjeun ngalawan serangan SQL suntik ngawengku: