Prucessione di SQL Injection Vulnerabili

SQL Attribuzione di ineazione sò di forti risichi in l'applicazioni web chì dependenu di un backend di basa di dati per generate cuntenutu dinamica. In questu tipu d'attache, i piratudi manipulate una applicazione web in un tentativu di injectà i so cumandamenti SQL in quelli di a basa di dati. Per un esempiu, vede l'articulu SQL Injection Attacks in basa di dati. In questu articulu, avemu fighjatu à parechji manere si pò pruverà i vostri applicazioni web per determinar si esse vulnerevule à l'attaccu SQL di Injection.

SQL scanning automatizatu SQL

Una pussibilità hè aduprà un scanner di vulnerabilità di l'applicazione web automatica, cum'è HP's WebInspect, l'AppScan di IBM o l'Hailstorm di Cenzic. Queste l'uttene tutte l'offerte viaghji simplici è automatizati di analise e vostre applicazioni web per e potenzale SQL Injection vulnerabili. In ogni casu, sò assai sughjetti, currianu finu à 25 000 USD per sedenti.

Pruebas Manuale di Injection Testa

Cume hè un prugramu in a so sperimentazione per fà? Pudete aghjustà qualchi teste di basa à evaluà e vostre applicazioni web per SQL Injection vulnerabili utilizendu micca nunda più di un navigatore web. Prima, una parolla di preca: i pruposi ch'e aghju scrivutu solu buste SQL SQL. Ùn detaranu tecnichi avanzati è sò una cosa tediosa di utilizà. Se pudete affordà, vai cun un scanner automatizatu. In ogni casu, se ùn pudete micca manighjate stu prezz tag, u pruverimentu manual hè un grandu primu passu.

A manera più faciule per evaluà si una applicazione hè vulnerable hè di pruvance per attache di ingiusciune innucu chì ùn hà micca veramente hannu abortatu a vostra basa di dati si anu riittatu, ma vi prupettenu evidenza chì avete bisognu di correggià un prublema. Per esempiu, supponi chì avete una appliazione web simplica chì cercessi un individuu in una basa di dati è cuntene l'infurmazione di cuntattu cù u risultatu. Questa pagina puderia usà l'indirizzu URL formatu:

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

Puderemu assume chì questa pagina realizeghja una basa di dati, in una quistione simili à a seguente:

SUGANTU telefonu FROM directory ON WHE lastname = 'chapple' è firstname = 'mike'

Cumpiemu à pruvà cù un pocu. Cù a nostra suppostione prima, pudemu fà un mudellu simplice à l'URL chì pruvà per l'attaccu di l'injezione SQL:

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

Se l'applicazione di u web ùn hè micca degnatu per pruteghja contra l'injezione SQL, aduprate solu avà u primu nomu fugliale in a struttura SQL chì eseguite in contru à a basa di dati, svinutu:

ELECHÉTTE u telefone DI U Lista Dà Dumenicu = U chapple è Firstname U MIKE E (select count (*) da FALSO)> 0 OR '1' = '1'

Avete bisognu chì a sintazione prima hè un pocu diffirenti da quella chì in u URL uriginale. Aghju pigliatu a libertà di cunvertisce u varminatu codificatu URL per i so equivalenti ASCII per fà più faciule seguità l'esempiu. Per esempiu,% 3d hè a codificazione URL per u '=' caratteru. Aghju aghjustatu ancu quarchi salute di linea per un scopu similà.

Avalanche Risultati

A prova vene quandu pruvate di cargue a pàgina web cù l'indirizzu indicatu quì nantu. Se l'applicazione web hè bè cumportatu, stenderà micca questi di l'intrata prima di passà a quistione à a basa di dati. Questu simplice solu un spaziu cerculu per quarcunu cù un primu nomu chì cumpresu un munzeddu di SQL! Avete vistu un messaghju di errore da l'applicazione sìmuli à quellu quì sottu:

Errore: Ùn avete truvatu truvatu cù u nome mike + AND + (select + count (*) + from + fake) +% 3e0 + OR + 1% 3d1 Chapple!

Invece, se l'applicazione hè vulnerevule à l'injezione SQL, passà a strada direttamente à a basa di dati, risultatu in una di duie pussibbilitati. Prima, se u vostru servore detalla messagi d'errore activati ​​(chì ùn avete micca!) Vi vede qualcosa di chistu:

Microsoft OLE DB Provider per ODBC Drivers error '80040e37' [Microsoft] [ODBC SQL Server Driver] [SQL Server] Un invalid object name 'fake'. /directory.asp, linea 13

Per d 'altra banda, se u vostru servore web ùn viaghja micca messagi d'errore dettagliate, vi vene un'errore generale, cum'è:

Errore Server internu U servore hà scontru un errore internu o misconfiguration è ùn pudia cumprà a vostra dumanda. Pateate l'amministratore di u servitore à avè infurmatu di u tempu chì l'erroru hà fattu è di tuttu ciò chì puderete avè fattu chì puderanu pruvucatu l'errore. A più infurmazione nantu à stu errore pò esse dispunibule in u logu di errore di u servitore.

Se ricivite u unu di i dui errore, a vostra appricazione hè vulnerable à l'attache di inzulu SQL! Certi passi chì vi pò piglià per pruteggiri l'appruvisazioni in i sizioni SQL Injection Attacks include: