Test fir SQL Injection Vulnerabilities

SQL Injektioun Attacke stellen immens Risiko fir Webapplikatiounen déi vun engem Datebank backend ofhängeg sinn fir dynamesch Inhalter ze generéieren. An dëser Zort Attacke schwätzt Hacker eng Webapplikatioun an e Versuch, hir SQL-Kommandoen an déi déi vun der Datebank erausginn. Fir e Beispill kuckt den Artikel SQL Injection Attacks op Datenbanken. An dësem Artikel kucken mir op verschidde Manéiere kënnt Dir Är Web-Apps fir ze bestëmmen, ob si vulnerabel sinn fir SQL Injection Attacken.

Automatiséierter SQL Injektiounscannen

Eng Méiglechkeet gëtt mat engem automateschen Webanalyse-Schwachbarkeetscanner benotzt, wéi HP's WebInspect, AppScan oder Cenzic's Hailstorm. Dës Tools all Offeren maachen einfach automatiséiert Weeër fir Är Webapplikatiounen ze analyséieren fir potenziell Schwieregkeete vu SQL Injektiounen. Si sinn awer zimlech teuer, bis zu 25.000 Dollar pro Plaz.

Manuell SQL Injection Tests

Wat ass e schlechte Applikateur Entwéckler ze maachen? Dir kënnt e puer grundleg Tester oppassen fir Är Webanwendunge fir SQL Injection Vulneratioune ze benotzen, déi näischt wéi e Webbrowser benotzen. Eischtens, e Wuert vun Vorsicht: d'Tester, déi ech beschreiwe se nëmmen ze kucken fir Basis SQL Injektiounsfoire. Si wäerten nach fortgeschriwwe Techniken net méi erkennen an e bëssi méi sënnvoll sinn ze benotzen. Wann Dir se leeschte kënnt, gitt mat engem automatiséierte Scanner. Allerdéngs, wann Dir dës Präissschrëft net handhëllt, handelt et eng gewëssen Eischt Schrëtt.

Deen einfachste Wee fir ze beurteelen, ob eng Applikatioun secherheetsfäeg ass experimentéiert mat onbeschiedenen Injektiounsattacken, déi Iech Är Datenbank net korrekt schueden, wann se geléngt, awer Dir wäert Beweise stellen datt Dir e Problem muss korrigéieren. Zum Beispill, gitt Dir eng einfach Web-Applikatioun, déi eng Individualitéit an enger Datebank kuckt an d'Kontakt Informatioun als Resultat. Dës Säit ka benotzen dëse URL-Format:

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

Mir kënnen ugeholl datt dës Säit eng Recherche vun der Datebank ausfëllt, mat enger Ufro un der folgender Ufro :

SELECT Telefon VUN DER Verifizéierungscode WËLLEN Numm = chapple a vrunname = 'mike'

Looss et experimentéieren mat dësem e bëssen. Mat eiser Iwwernahmung uewe maachen mir eng einfach Ännerung vun der URL déi Tester fir SQL-Injektiounsattacken huet:

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

Wann d'Webapplikatioun net géint SQL-Injektioun richteg geschützt gouf, plangt dës plötzell Virausstëppel an d'SQL-Erklärung aus, déi se aus der Datebank ausgëtt, a wéi:

SELECT Telefon VUN DER Verëffentlechungsverwaltung WËLLTEN Numm = 'chapple' a Vrunname = 'mike' AND (wielt Zähl (*) aus Fake)> 0 ODER '1' = '1'

Dir kënnt kucken datt d'Syntax uewen e bësschen anescht ass wéi dat an der ursprénglecher URL. Ech hunn d'Fräiheet fir d'URL-encodéiert Variabel fir hiren ASCII Äquivalenten z'änneren fir et méi einfach ze maachen an d'Beispill ze maachen. Zum Beispill gëtt% 3d d'URL-Encoding fir den Zeechen '='. Ech hunn och verschidde Line Breaks fir ähnlech Zwecker zousätzlech.

Auswertung vun de Resultater

De Test kënnt wann Dir probéiert d'Internetsäit mat der URL hei ze luëglezen. Wann d'Webapplikatioun gutt verhandelt ass, wäerte se déi eenzel Zitaten aus der Input ausstoen, ier Dir d'Abfrage op d'Datebank passt. Dëst wäert einfach e komësche Lookup fir ee mat engem éischte Numm deen e BALL vun SQL enthält! Dir kënnt e Fehlermeldung vun der App gesinn déi e bëssche méi anescht ass:

Feeler: Kee Benotzer fonnt mam Numm mike + AND + (Selekt + Zielt (*) + vu + Fake) +% 3e0 + ODER + 1% 3d1 Chapple!

Op där anerer Säit, wann d'Applikatioun fir SQL-Injektioun vulnerabel ass, gëtt d'Erklärung direkt an d'Datebank geliwwert, déi zu enger vun zwou Méiglechkeeten erreechen. Eischtens, wann Äre Server detailléiert Fehlermeldung aktivéiert huet (déi Dir net sollt!), Gesitt Dir esou eppes:

Microsoft OLE DB Provider fir ODBC Treiberfehler '80040e37' [Microsoft] [ODBC SQL Server Driver] [SQL Server] Invalid Objektbezeechnung 'falsch'. /directory.asp, Linn 13

Op där anerer Säit, wann Äre Webserver net detailléiert Fehlermeldung weist, kritt Dir e méi generesche Feeler wéi:

Intern Serverfeeler Den Server huet engem interne Feeler oder Fehlkonfiguratioun fonnt an Dir konnt Är Ufro net fäerdeg bréngen. Kuckt weg un den Serververwalter fir ze informéieren iwwer de Moment wou de Fehler opgetruede war a wat Dir gemaach hutt, wat Dir kéint de Fehler verursaacht hunn. Méi Informatioun iwwer dëse Feeler kënnt Dir an de Serverfeler Protokoll kréien.

Wann Dir entweder eent vun de zwou Feeler uewe gëtt, Är Applikatioun gëtt SQL-Injektiounsfäegkeet! E puer Schrëtt kënnt Dir huelen fir Är Applikatiounen géint SQL Injection ze schützen: