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:
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'1Mura 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 13Air 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:
- Cuir a-steach sgrùdadh paramadair air a h-uile tagradh. Mar eisimpleir, ma tha thu ag iarraidh air cuideigin a dhol a-steach do àireamh luchd-cleachdaidh, dèan cinnteach gu bheil an t-iarrtas àireamhach mus cuir thu a-steach an ceist .
- Cuir crìoch air ceadan a 'chunntais a bhios a' cur a-mach ceistean SQL . Tha an riaghladh aig a bheil co-dhiù sochair. Mura h-eil an cunntas a chleachdar gus a 'cheist a chur an gnìomh, chan eil cead aige a chur an sàs, cha dèan e soirbheachadh!
- Cleachd modhan glèidhte (no dòighean coltach ris) gus casg a chur air luchd-cleachdaidh a bhith ag eadar-obrachadh gu dìreach le còd SQL.