Ittestjar għall-Vulnerabilitajiet għall-Injezzjoni SQL

L-attakki ta 'Injezzjoni SQL joħolqu riskji enormi għall-applikazzjonijiet tal-web li jiddependu minn backend ta' database biex jiġġenera kontenut dinamiku. F'dan it-tip ta 'attakk, il-hackers jimmanipulaw applikazzjoni tal-web f'attentat biex jinjettaw il-kmandi SQL tagħhom stess f'dawk maħruġa mid-database. Għal eżempju, ara l-artikolu SQL Injection Attacks fuq Databases. F'dan l-artikolu, aħna nħarsu lejn diversi modi kif tista 'tittestja l-applikazzjonijiet tal-web tiegħek biex tiddetermina jekk humiex vulnerabbli għal attakki ta' Injezzjoni SQL.

Automated SQL Injection Scanning

Possibbiltà waħda hija l-użu ta 'skaner tal-vulnerabbiltà tal-applikazzjoni tal-web awtomatizzat, bħal WebInspect ta' HP, AppScan ta 'IBM jew Hailstorm ta' Cenzic. Dawn l-għodda kollha joffru modi faċli u awtomatizzati biex janalizzaw l-applikazzjonijiet tal-web tiegħek għal vulnerabbiltajiet potenzjali ta 'Injezzjoni SQL. Madankollu, huma pjuttost għoljin, li jmexxu sa $ 25,000 kull sedil.

Testijiet Manwali dwar l-Injezzjoni SQL

X'hemm żviluppatur ta 'applikazzjoni fqir biex jagħmel? Int tista 'attwalment tmexxi xi testijiet bażiċi biex tevalwa l-applikazzjonijiet tal-web tiegħek għal SQL Injezzjoni vulnerabilitajiet li jużaw xejn aktar minn web browser. L-ewwel, kelma ta 'prudenza: it-testijiet niddeskrivi biss tfittex difetti bażiċi ta' Injezzjoni SQL. Ma jsibux tekniki avvanzati u huma xi ftit tedjanti għall-użu. Jekk tista 'tħallas għaliha, mur ma' skanner awtomatizzat. Madankollu, jekk ma tistax timmaniġġa dik il-prezz, l-ittestjar manwali huwa l-ewwel pass kbir.

L-eħfef mod biex jiġi evalwat jekk applikazzjoni hijiex vulnerabbli huwa li jesperimentaw b'inċidenzi ta 'injezzjoni innokwa li fil-fatt ma jagħmlux ħsara lid-database tiegħek jekk jirnexxu iżda jagħtuk evidenza li għandek bżonn biex tikkoreġi problema. Per eżempju, ejja ngħidu li kellek applikazzjoni web sempliċi li tħares individwu f'database u tipprovdi informazzjoni ta 'kuntatt bħala riżultat. Dik il-paġna tista 'tuża l-format URL li ġej:

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

Nistgħu nassumu li din il-paġna twettaq lookup database, bl-użu ta 'mistoqsija simili għal dan li ġej:

IT-TAGĦŻEL TAT-telefon MINN DIN ID-DOKTA Lastname = 'chapple' u firstname = 'mike'

Ħalli esperimentna b'dan daqsxejn. Bil-preżunzjoni tagħna ta 'hawn fuq, nistgħu nagħmlu bidla sempliċi fil-URL li t-testijiet għall-attakki ta' injezzjoni SQL:

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

Jekk l-applikazzjoni tal-web ma ġietx protetta sewwa kontra l-injezzjoni SQL, hija sempliċiment timla dan l-ewwel isem falz fid-dikjarazzjoni SQL li teżegwixxi kontra d-database, li tirriżulta fi:

IT-TAGĦŻEL TAT-telefon MINN DOKUMENT FEJN lastname = 'chapple' u firstname = 'mike' U (agħżel l-għadd (*) minn foloz)> 0 JEW '1' = '1'

Tinduna li s-sintassi hawn fuq hija xi ftit differenti minn dik fil-URL oriġinali. I ħadet il-libertà li tikkonverti l-varjabbli kodifikata bl-URL għall-ekwivalenti ASCII tagħhom biex tagħmilha aktar faċli li ssegwi l-eżempju. Per eżempju,% 3d hija l-kodifikazzjoni URL għall-karattru "=". I żied ukoll xi waqfiet fil-linja għal skopijiet simili.

Evalwazzjoni tar-Riżultati

It-test jiġi meta tipprova timla l-paġna web bil-URL elenkat hawn fuq. Jekk l-applikazzjoni tal-web tkun imġiba tajjeb, se tneħħi l-kwotazzjonijiet singoli mill-input qabel ma tgħaddi l-mistoqsija lid-database. Dan sempliċement iwassal għal tfittxija strambika għal xi ħadd bl-ewwel isem li jinkludi mazz ta 'SQL! Int ser tara messaġġ ta 'żball mill-applikazzjoni simili għal dak ta' hawn taħt:

Żball: L-ebda utent ma nstab b'imike mike + U + (agħżel + għadd (*) + minn + foloz) +% 3e0 + JEW + 1% 3d1 Chapple!

Min-naħa l-oħra, jekk l-applikazzjoni hija vulnerabbli għall-injezzjoni SQL, se tgħaddi l-istqarrija direttament lid-database, li tirriżulta f'waħda miż-żewġ possibbiltajiet. L-ewwel, jekk is-server tiegħek għandu messaġġi ta 'żball dettaljati ppermettiet (li m'għandekx!), Tkun taf tara xi ħaġa bħal din:

Fornitur OLE DB ta 'Microsoft għal żball tas-sewwieqa ODBC' 80040e37 '[Microsoft] [ODBC SQL Server Driver] [SQL Server] Isem ta' oġġett invalidu 'foloz'. /directory.asp, linja 13

Min-naħa l-oħra, jekk is-server tal-web tiegħek ma juri messaġġi ta 'żball dettaljati, ikollok iżball aktar ġeneriku, bħal:

Internal Server Error Is-server iltaqa 'ma' żball intern jew konfigurazzjoni żbaljata u ma setax jimla t-talba tiegħek. Jekk jogħġbok ikkuntattja lill-amministratur tas-server biex jinforma dwar iż-żmien li fih seħħ l-iżball u dwar x'jagħmel li seta 'kkawża l-iżball. Aktar informazzjoni dwar dan l-iżball tista 'tkun disponibbli fil-log ta' l-iżball tas-server.

Jekk tirċievi wieħed miż-żewġ żbalji ta 'hawn fuq, l-applikazzjoni tiegħek hija vulnerabbli għal attakk ta' injezzjoni SQL! Xi passi li tista 'tieħu biex tipproteġi l-applikazzjonijiet tiegħek kontra l-attakki ta' Injezzjoni SQL jinkludu: