Ho Lekoa Bakeng sa Mathata a SQL Injection

Litlhaselo tsa SQL Injection li baka likotsi tse kholo ho li-application tse itšetlehileng ka database backend ho hlahisa litaba tse matla. Ka tlhaselo ena, basebeletsi ba sebetsana le sesebelisoa sa websaete ho leka ho kenya litaelo tsa bona tsa SQL ho tse hlahisoang ke database. Bakeng sa mohlala, sheba sehlooho sa SQL Injection Attacks ho Databases. Sehloohong sena, re sheba litsela tse 'maloa tseo u ka hlahlobang li-websaete tsa hau tsa marang-rang ho fumana hore na li kotsing ea tlhaselo ea SQL Injection.

Ho iketsetsa SQL Injection Scanning

Ntho e 'ngoe e ka' nang ea e-ba ho sebelisa sesebelisoa sa ts'ebeliso ea ts'ebetso ea websaeteng, e kang HP's WebInspect, IBM's AppScan kapa Cilcorm Hailstorm. Lisebelisoa tsena kaofela li fana ka litsela tse bonolo, tse ikemetseng tsa ho hlahloba lits'ebetso tsa hau tsa marang-rang bakeng sa ho senyeha ha SQL Injection. Leha ho le joalo, li theko e boima haholo, li matha ho fihlela ho $ 25,000 ka setulo.

Liteko tsa SQL tsa ho Injection ea Mangolo

Ke sesebelisoa se futsanehileng sebapali sefe? U ka qoba liteko tse ling tsa motheo ho hlahloba lits'ebetso tsa hau tsa marang-rang bakeng sa bofokoli ba SQL Injection ho sebedise letho ho feta sebadi sa marang-rang. Ntlha ea pele, temoso: liteko ke li hlalosa feela ho sheba liphoso tsa mantlha tsa SQL Injection. Ba ke ke ba lemoha mekhoa e tsoetseng pele 'me ba batla ba le boima ho e sebelisa. Haeba o khona ho e khona, tsamaea ka mochine o ikemetseng. Leha ho le joalo, haeba u sa khone ho sebetsana le tekanyo ea theko eo, tlhahlobo ea botho ke mohato o moholo oa pele.

Tsela e bonolo ka ho fetisisa ea ho hlahloba hore na ts'ebetso e kotsing ke ho leka liteko tse se nang kotsi tse ke keng tsa senya database ea hau haeba li atleha empa li tla u fa bopaki ba hore u lokela ho lokisa bothata. Ka mohlala, ha re re u na le sesebelisoa se bonolo sa websaete se shebang motho ka boitsebisong mme se fane ka tlhahisoleseding ea puisano ka lebaka la seo. Leqephe lena le ka sebelisa mokhoa o latelang oa URL:

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

Re ka nahana hore leqephe lena le etsa lenaneo la ho fumana lintlha, ho sebelisa potso e tšoanang le e latelang:

SELECT fono HO mohloli WHERE lastname = 'chapple' le firstname = 'mike'

A re hlahlobeng sena hanyenyane. Ha re nahana ka holimo, re ka etsa phetoho e bonolo ho URL e lekang tlhaselo ea ente ea SQL:

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

Haeba sesebelisoa sa websaete se sa sirelelitsoe hantle khahlanong le ente ea SQL, e mpa e pata lebitso lena la bohata ka polelo ea SQL e etsoang khahlanong le database, e hlahisang:

SELECT phone from directory WHERE lastname = 'chapple' le firstname = 'mike' LE (khetha count (*) ho fake)> 0 OR '1' = '1'

U tla hlokomela hore syntax e ka holimo e fapane haholo le ea URL ea pele. Ke ile ka nka tokoloho ea ho fetola likarolo tsa bona tsa ASCII tse fetoletsoeng URL-encoded ho etsa hore ho be bonolo ho latela mohlala. Ka mohlala,% 3d ke URL-encoding bakeng sa '='. Ke boetse ke kenyelitse mekhahlelo ea li-line bakeng sa merero e tšoanang.

Ho hlahloba Liphetho

Teko e tla ha o leka ho laela leqephe la marang-rang le URL e thathamisitsoeng ka holimo. Haeba websaete ea websaete e itšoere hantle, e tla hlakola litlhaloso tse le 'ngoe ho tsoa pele ho feta ho fetisa potso ho database. Sena se tla fella feela ka ho fumana mokhoa o makatsang oa motho ea nang le lebitso la pele le akarelletsang sehlopha sa SQL! O tla bona molaetsa oa phoso ho tsoa ho kopo e tšoanang le e ka tlase:

Phoso: Ha ho na motho ea fumaneng lebitso la mike + AND + (khetha + palo (*) + ho tloha ho + leshano) +% 3e0 + OR + 1% 3d1 Chapple!

Ka lehlakoreng le leng, haeba kopo e kotsing ea ho kenngoa ha SQL, e tla fetisa polelo ka ho toba ho ea ka morao-rao, e leng se hlahisang e 'ngoe ea menyetla e' meli. Ntlha ea pele, haeba seva sa hau se na le melaetsa e fapaneng ea phoso (eo u sa lokelang ho e etsa!), U tla bona ntho e kang ena:

Mofani oa Microsoft OLE DB bakeng sa phoso ea bakhanni ba ODBC '80040e37' [Microsoft] [ODBC SQL Server Driver] [SQL Server] Lebitso la ntho e sa nepahaleng 'sekoti'. /directory.asp, mohala 13

Ka lehlakoreng le leng, haeba seva sa hao sa inthanete se sa bontše melaetsa e hlakileng ea phoso, u tla fumana phoso e ngata haholo, e kang:

Phoso ea Inthanete ea Seva Seva se kopane le phoso ea ka hare kapa ho fetola tsela e fosahetseng 'me e sitoa ho phetha kopo ea hau. Ka kopo ikopanye le mookameli oa seva ho tsebisa nako eo phoso e hlahileng le ea eng kapa eng eo u ka e entseng e ka 'nang eaba e bakile phoso. Boitsebiso bo eketsehileng mabapi le phoso ena e ka 'na ea e-ba teng mokong oa phoso ea seva.

Haeba o amohela e 'ngoe ea liphoso tse peli tse ka holimo, kopo ea hau e kotsing ea tlhahlobo ea ente ea SQL! Mehato e meng eo u ka e nkang ho sireletsa lik'hamphani tsa hau khahlanong le litlhaselo tsa SQL ho oela ho kenyelletsa: