Deuchainn airson mì-sheasmhachd de shoidhnichean SQL

SQL Tha ionnsaighean mì-chinnteach a 'toirt cunnartan uabhasach do thagraidhean lìn a tha an urra ri cùl- fhiosrachadh stòr - dàta gus susbaint làidir a chruthachadh. Anns an t-seòrsa ionnsaigh seo, bidh luchd-cleachdaidh a 'cleachdadh inneal-lìn ann an oidhirp gus na h-òrdughan SQL aca fhèin a thilgeil a-steach don fheadhainn a tha air an sgaoileadh leis an stòr-dàta. Airson eisimpleir, faic an t-artaigil SQL Inject Injection air Stòran-dàta. San artaigil seo, bheir sinn sùil air grunn dhòighean anns am faod thu na tagraidhean lìn agad a dhearbhadh gus faighinn a-mach a bheil iad so-leònte ann an ionnsaighean meidigeach SQL.

Sganadh Uidheamachadh Uidheamachadh SQL

Is e aon chothrom a tha ann a bhith a 'cleachdadh sganair uireasbhuidh de vulnerability tagradh lìn, mar HP's WebInspect, AppScan IBM no Henzstorm Cenzic. Tha na h-innealan sin uile a 'tabhann dhòighean furasta, fèin-ghluasadach gus na tagraidhean lìn agad a mhion-sgrùdadh mu dhuilgheadasan SQL Injection. Ach, tha iad gu math daor, a 'ruith suas ri $ 25,000 gach seat.

Deuchainnean Soidhneachaidh SQL làimhe

Dè a tha ann an leasachadh tagraidh bochda? Is urrainn dhut cuid de dheuchainnean bunaiteach a ruith gus measadh a dhèanamh air na tagraidhean lìn agad airson laghan SQL le bhith a 'cleachdadh rud sam bith a bharrachd air brabhsair lìn. An toiseach, facal èiginn: chan eil na deuchainnean a tha mi a 'mìneachadh ach a' coimhead airson duilgheadasan meadhain SQL bunaiteach. Cha lorg iad dòighean adhartach agus tha iad rudeigin duilich a chleachdadh. Mas urrainn dhut a phàigheadh, rachaibh le sganadair fèin-ghluasadach. Ach, mura h-urrainn dhut an tag prìs sin a làimhseachadh, is e deuchainnean làimhe na ciad cheum math.

Is e an dòigh as fhasa air measadh a dhèanamh an e tagradh a tha so-leònte a bhith a 'feuchainn ri ionnsaighean neo-chiontach ann an stealladh nach dèan cron air an stòr-dàta agad ma tha iad soirbheachail, ach bheir e seachad fianais dhut gu feum thu duilgheadas a cheartachadh. Mar eisimpleir, tha coltas gu robh iarrtas sìmplidh agad air lìon a tha a 'coimhead suas neach fa leth ann an stòr-dàta agus a' toirt seachad fiosrachadh conaltraidh mar thoradh air. Dh'fhaodadh an duilleag sin an cruth URL a leanas a chleachdadh:

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

Faodaidh sinn a bhith den bheachd gu bheil an duilleag seo a 'coileanadh sgrùdadh stòr-dàta, a' cleachdadh ceist coltach ris na leanas:

SELECT phone FROM directory WHERE lastname = 'chapple' agus firstname = 'mike'

Feuch sinn feuchainn ri seo beagan. Le ar beachd gu h-àrd, is urrainn dhuinn atharrachadh sìmplidh a dhèanamh air an URL a tha a 'dèanamh deuchainnean airson ionnsaighean in-steidh SQL:

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

Mura h-eil an làrach-lìn air a dhìon gu ceart an aghaidh in-stealladh SQL, tha e dìreach a 'plocadh a' chiad ainm bhrèagha seo gu aithris SQL bidh e a 'ruith an aghaidh an stòr-dàta, agus mar thoradh air sin:

SELECT phone FROM directory WHERE lastname = 'chapple' and firstname = 'mike' AND (tagh cunnt (*) bho fhicsean)> 0 NO '1' = '1'

Nochdaidh tu gu bheil an co-sgrìobhadh gu h-àrd beagan eadar-dhealaichte na tha san URL thùsail. Ghabh mi an saorsa a bhith ag atharrachadh an caochlaideach chòd-URL airson na co-ionannachdan ASCII gus a dhèanamh nas fhasa an eisimpleir a leantainn. Mar eisimpleir, is e% 3d còdachadh URL airson a 'charactar' = '. Chuir mi cuideachd briseadh loidhne air adhbharan coltach ris.

A 'measadh nan toraidhean

Bidh an deuchainn a 'tighinn nuair a tha thu a' feuchainn ris an duilleag-lìn a luchdachadh leis an URL gu h-àrd. Ma tha an t-iarrtas lìn gu math modhail, cuiridh e às na cunntasan singilte bhon chuideachadh mus tèid ea 'cheist chun an stòr-dàta. Bidh seo dìreach a 'ciallachadh gu bheil sgrùdadh neònach aig cuideigin leis a' chiad ainm a tha a 'toirt a-steach grunn SQL! Chì thu teachdaireachd mearachd bhon tagradh coltach ris an fhear gu h-ìosal:

Mearachd: Lorg neach-cleachdaidh le ainm mike + AND + (tagh + cunnt (*) + bho + fake) +% 3e0 + OR + 1% 3d1 Chapple!

Air an làimh eile, ma tha an t-iarrtas so-leònte ri in-stealladh SQL, cuiridh e an aithris gu dìreach chun an stòr-dàta, agus mar thoradh air sin bidh e na dhà de na cothroman. An toiseach, ma tha teachdaireachdan mearachd mionaideach aig an fhrithealaiche agad (nach bu chòir dhut!), Chì thu rudeigin mar seo:

Microsoft OLE DB Provider airson mearachd Luchd-dràibhidh ODBC '80040e37' [Microsoft] [ODBC Driver Server SQL] [Freiceadan SQL] Ainm a 'phuing mì-dhligheach' fake '. /directory.asp, loidhne 13

Air an làimh eile, mura nochd an frithealaiche lìn agad teachdaireachd mearachd mionaideach, gheibh thu mearachd nas coitcheann, mar:

Mearachd taobh a-staigh an fhrithealaiche Dh'fhuirich an frithealaiche ri mearachd a-staigh no atharrachadh agus cha b 'urrainn dha do iarrtas a lìonadh a-steach. Cuir fios gu rianadair an fhrithealaiche gus innse mun àm a thachair an mearachd agus mu rud sam bith a dh'fhaodadh a bhith air a dhèanamh a dh 'adhbhraich an mearachd. Dh'fhaodadh gum bi barrachd fiosrachaidh mun mhearachd seo ri fhaighinn ann an log mearachd an fhrithealaiche.

Ma gheibh thu aon de na mearachdan gu h-àrd, tha an tagradh agad ann an cunnart bho ionnsaigh-stealladh SQL! Cuid de na ceumannan as urrainn dhut a dhèanamh gus na tagraidhean agad a dhìon an aghaidh SQL. Tha ionnsaighean casaidh a 'gabhail a-steach: