SQL injection: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Recupero di 1 fonte/i e segnalazione di 1 link interrotto/i.) #IABot (v2.0.9.2
Nessun oggetto della modifica
Etichette: Modifica visuale Modifica da mobile Modifica da web per mobile
 
(13 versioni intermedie di 10 utenti non mostrate)
Riga 1:
[[File:KD SQLIA Classification 2010.png|thumb|alt=Classificazione dei vettori di attacchi SQL injection nel 2010|Classificazione dei vettori di attacchi SQL injection nel 2010]]
 
Nella [[sicurezza informatica]] '''SQL injection ''' è una tecnica di ''codecommand injection'', usata per [[Attacco informatico|attaccare]] applicazioni che gestiscono dati attraverso [[database relazionali]] sfruttando il linguaggio [[Sql|SQL]]. Il mancato controllo dell'input dell'utente permette di inserire artificiosamente delle [[Stringa (informatica)|stringhe]] di [[codice sorgente|codice]] [[SQL]] che saranno eseguite dall'applicazione [[server]]: grazie a questo meccanismo è possibile far eseguire comandi SQL, anche molto complessi, dall'alterazione dei dati (es. creazione di nuovi utenti) al [[download]] completo dei contenuti nel database.<ref>{{Cita web|url= https://technet.microsoft.com/en-us/library/ms161953%28v=SQL.105%29.aspx |titolo= SQL Injection |accesso= 4 agosto 2013 |autore= Microsoft |citazione= SQL injection is an attack in which malicious code is inserted into strings that are later passed to an instance of SQL Server for parsing and execution. Any procedure that constructs SQL statements should be reviewed for injection vulnerabilities because SQL Server will execute all syntactically valid queries that it receives. Even parameterized data can be manipulated by a skilled and determined attacker.}}</ref>
 
== Storia ==
Riga 7:
 
== Descrizione ==
Sfrutta le [[vulnerabilità informatica|vulnerabilità di sicurezza]] del codice applicativo che si collega alla fonte dati SQL, ad esempio, sfruttando il mancato ''filtraggio'' dell'input dell'utente (e.ses. 'caratteri di escape' nelle stringhe SQL) oppure la mancata [[tipizzazione forte]] delle variabili impiegate. È più conosciuto come attacco destinato ad [[Applicazione web|applicazioni web]], ma è anche usato per attaccare qualsiasi altro tipo di applicazione che impieghi in modo non sicuro database SQL.
 
Permette agli attaccanti di effettuare attività di [[IP spoofing|spoof identify]], modificare dati esistenti, causare repudiation issues come l'annullamento di transazioni o la modifica dei bilanci, permette di ottenere tutti i dati sul sistema, eliminare o rendere inaccessibile dei dati, e creare o compromettere gli utenti (e.g. amministratore) del database server.
Riga 19:
* [[Database management system]]-specific SQLI
* Compounded SQLI
** SQL injection + insufficient authentication<ref>{{Cita web |url=http://www.xiom.com/whid-2007-60 |titolo=WHID 2007-60: The blog of a Cambridge University security team hacked |editore=Xiom |accesso=3 giugno 2011 |urlmorto=sì |urlarchivio=https://web.archive.org/web/20110619071503/http://www.xiom.com/whid-2007-60 |dataarchivio=19 giugno 2011 }}</ref>
 
:** SQL injection + insufficient[[DDoS]] authenticationattacks<ref>{{Cita web |url=http://www.xiom.com/content/whid-20072009-1-gaza-conflict-cyber-60war |titolo=WHID 20072009-601: TheGaza blogconflict ofcyber a Cambridge University security team hackedwar |editore=Xiom |accesso=3 giugno 2011 |urlmorto=sì |urlarchivio=https://web.archive.org/web/2011061907150320111007201703/http://www.xiom.com/content/whid-20072009-601-gaza-conflict-cyber-war |dataarchivio=197 giugnoottobre 2011 }}</ref>
:** SQL injection + [[DDoSDNS hijacking]] attacks<ref>{{Citacita web |url=http://www.xiom.com/content/whid-2009-1-gaza-conflict-cyber-warlist/DNS%20Hijacking |titolo=WHIDCopia 2009-1: Gaza conflict cyber war |editore=Xiomarchiviata |accesso=322 giugnomaggio 2011 |urlmorto=sì |urlarchivio=https://web.archive.org/web/2011100720170320100305182306/http://www.xiom.com/content/whid-2009-1-gaza-conflict-cyber-warlist/DNS%20Hijacking |dataarchivio=75 ottobremarzo 20112010 }} </ref>
:** SQL injection + [[DNSCross-site hijackingscripting|XSS]]<ref>{{citaCita web |url=http://www.xiomdarkreading.com/whid-listsecurity/DNS%20Hijackingmanagement/showArticle.jhtml?articleID=211201482 |titolo=CopiaThird archiviataWave |accesso=22of Web Attacks Not maggiothe 2011Last |urlmortoeditore=Dark Reading |urlarchivioaccesso=https://web.archive.org/web/20100305182306/http://www.xiom.com/whid-list/DNS%20Hijacking29 luglio 2012 |dataarchiviourlmorto=5 marzo 2010 }} </ref>
:* SQL injection + [[Cross-site scripting|XSS]]<ref>{{Cita web |url=http://www.darkreading.com/security/management/showArticle.jhtml?articleID=211201482 |titolo=Third Wave of Web Attacks Not the Last |editore=Dark Reading |accesso=29 luglio 2012 |urlmorto=sì }}</ref>
 
Lo [[Storm Worm]] è un esempio di utilizzo delle Compounded SQLI.<ref>{{Cita web|cognome=Danchev |nome=Dancho |url=https://ddanchev.blogspot.com/2007/01/social-engineering-and-malware.html|titolo=Mind Streams of Information Security Knowledge: Social Engineering and Malware |editore=Ddanchev.blogspot.com |data=23 gennaio 2007 |accesso=3 giugno 2011}}</ref>
Line 50 ⟶ 49:
<syntaxhighlight lang="sql">SELECT * FROM users WHERE name = '' OR '1'='1' -- ';</syntaxhighlight>
 
Se questo codice fosse utilizzato in una procedura di [[autenticazione]], allora questo esempio potrebbe essere usato per forzare la selezione di tutti i campi dati (*) di "tutti" gli utenti piuttosto che di un singolo username come era inteso dal codice, ciò accade perché la valutazione di ‘1'='1' è sempre vera ([[short-circuit evaluation]]).
 
Nell'esempio di sotto il valore di “userName” causerebbe l'eliminazione della tabella “user” e la selezione di tutti i dati nella tabella “userinfo” (in pratica rivelando le informazioni di tutti gli utenti), usando un API che permette statement multipli:
Line 119 ⟶ 118:
 
=== Permessi del database ===
Limitare i permessi nel [[login]] usato dell'applicazione web per accedere al database, mettendo solo i permessi necessari, può servire a ridurre l'efficacia di qualsiasi attacco di SQL injection, mirato a dei bug dell'applicazione.
 
Per esempio, su [[Microsoft SQL Server]], si può proibire al logon del database di fare una select ad alcune delle tabelle di sistema, in questa maniera viene evitato che venga inserito del JavaScript all'interno di tutte le colonne del database <syntaxhighlight lang="tsql">
Line 287 ⟶ 286:
* Il 13 gennaio 2006, dei criminali informatici russi sono entrati nel sito del governo di Rhode ed hanno rubato dati sulle carte di credito degli individui che avevano fatto affari con le agenzie di stato.<ref>{{Cita web|url=http://www.xiom.com/whid-2006-3|titolo=WHID 2006-3: Russian hackers broke into a RI GOV website|editore=[[Web Application Security Consortium]]|data=13 gennaio 2006|accesso=16 maggio 2008|urlmorto=sì|urlarchivio=https://web.archive.org/web/20110213051033/http://www.xiom.com/whid-2006-3|dataarchivio=13 febbraio 2011}}</ref>
* Il 29 marzo 2006, un hacker scoprì una vulnerabilità all'SQL injection su un sito ufficiale per il turismo del governo indiano.<ref>{{Cita web|url=http://www.xiom.com/whid-2006-27|titolo=WHID 2006-27: SQL Injection in incredibleindia.org|editore=[[Web Application Security Consortium]]|data=29 marzo 2006|accesso=12 marzo 2010|urlmorto=sì|urlarchivio=https://web.archive.org/web/20090701130734/http://www.xiom.com/whid-2006-27|dataarchivio=1º luglio 2009}}</ref>
* Il 29 giugno 2009, un criminale informatico deturpò il [[sito web]] di e [[Microsoft]] UK usando un attacco di SQLI.<ref>{{Cita web|url=http://www.cgisecurity.net/2007/06/hacker-defaces.html|titolo=Hacker Defaces Microsoft U.K. Web Page|editore=cgisecurity.net|autore=Robert|data=29 giugno 2007|accesso=16 maggio 2008}}</ref><ref>{{Cita web|url=https://rcpmag.com/news/article.aspx?editorialsid=8762|titolo=Hacker Defaces Microsoft UK Web Page|editore=Redmond Channel Partner Online|autore=Keith Ward|data=29 giugno 2007|accesso=16 maggio 2008|urlarchivio=https://web.archive.org/web/20071223181645/http://rcpmag.com/news/article.aspx?editorialsid=8762|dataarchivio=23 dicembre 2007|urlmorto=sì}}</ref> Un sito web britannico, ''[[The Register]]'' riportò che un portavoce di Microsoft avesse confermato il problema.
* Nel gennaio 2008, decine di migliaia di PC furono infettati da un attacco di SQL injection automatizzato che sfruttava le vulnerabilità nel codice che usava [[Microsoft SQL Server]]<ref name="chinesefarm" />
* Nel gennaio 2008, il sito del malesiano [[Kaspersky Lab]] fu violato da un hacker turco conosciuto con lo pseudonimo "m0sted", che disse di aver usato un SQL injection.
* Nel febbraio del 2013, un gruppo di hacker delle Maldive violò il sito " UN-Maldives" usando l'SQL Injection.
* Il 27 maggio 2009, gli investigatori [[Anti-U.S. Hackers Infiltrate Army Servers]] dissero di credere di aver ricevuto un attacco chiamato SQL injection che sfruttava una vulnerabilità di sicurezza di Microsoft SQL Server per entrare nei web server. "m0sted" è conosciuto per aver effettuato attacchi simili in molti altri siti nel passato.
* Nel maggio del 2008, una [[server farm]] in [[Cina]] usò delle query automatizzate inviate a [[Google Search|Google's search engine]] per identificare dei siti web che usassero SQL server, che era vulnerabile ad un SQLI tool.<ref name="chinesefarm">{{Cita web |url= https://www.pcworld.com/businesscenter/article/146048/mass_sql_injection_attack_targets_chinese_web_sites.html |titolo= Mass SQL Injection Attack Targets Chinese Web Sites |autore= Sumner Lemon, IDG News Service |editore= [[PCWorld]] |data= 19 maggio 2008 |accesso= 27 maggio 2008 |dataarchivio= 26 maggio 2008 |urlarchivio= https://web.archive.org/web/20080526210653/http://www.pcworld.com/businesscenter/article/146048/mass_sql_injection_attack_targets_chinese_web_sites.html |urlmorto= sì }}</ref><ref name="attackspecifics">{{Cita web |url= http://www.bloombit.com/Articles/2008/05/ASCII-Encoded-Binary-String-Automated-SQL-Injection.aspx |titolo= ASCII Encoded/Binary String Automated SQL Injection Attack |autore= Michael Zino |data= 1º maggio 2008 |accesso= 7 aprile 2016 |urlarchivio= https://web.archive.org/web/20080601094431/http://www.bloombit.com/Articles/2008/05/ASCII-Encoded-Binary-String-Automated-SQL-Injection.aspx |dataarchivio= 1 giugno 2008 |urlmorto= sì }}</ref>
* Nel 2008, almeno da aprile ad agosto, una serie di attacchi comincio a sfruttare le vulnerabilità ad SQLI di [[Internet Information Services|IIS web server]] e SQL Server. L'attacco non richiedeva di indovinare il nome di una tabella o la colonna, e corrompeva tutte le colonne di testo in tutte le tabelle in una sola richiesta.<ref name="broad_inject_specifics">{{Cita web|url= https://hackademix.net/2008/04/26/mass-attack-faq/ |titolo= Mass Attack FAQ |autore=Giorgio Maone|data= 26 aprile 2008 }}</ref> Ad ogni valore veniva appeso una stringa HTML con un riferimento ad un [[malware]] [[JavaScript]]. Quando successivamente, veniva visualizzato il valore al visitatore del sito, lo script tentava vari approcci per prendere il controllo del sistema del visitatore. Il numero delle pagine web sfruttate si stima fosse attorno alle 500,000.<ref name="broad_inject_numbers">{{Cita news |url=https://www.computerworld.com/article/2535473/huge-web-hack-attack-infects-500-000-pages.html |titolo=Huge Web hack attack infects 500,000 pages |pubblicazione=[[Computerworld (blog)|Computerworld]] |nome=Gregg |cognome=Keizer |data=25 aprile 2008 |accesso=16 ottobre 2015 |lingua=en}}</ref>
* Il 17 agosto 2009, il Dipartimento di giustizia degli USA accusò un cittadino americano, [[Albert Gonzalez]], e due russi del furto di 130 milioni di numeri di carte di credito avendo usato un attacco di SQLI. È riportato come "il maggiore caso di furto di identità nella storia americana".<ref>{{Cita news|url=http://news.bbc.co.uk/2/hi/americas/8206305.stm |titolo=US man 'stole 130m card numbers' |editore=BBC |data=17 agosto 2009 |accesso=17 agosto 2009}}</ref>
* Nel dicembre 2009, un hacker riuscì ad accedere a un database della [[RockYou]] che conteneva le [[password]] e gli username non criptati di circa 32 milioni di utenti usando un attacco di SQLI.<ref>{{Cita news|url=https://www.nytimes.com/external/readwriteweb/2009/12/16/16readwriteweb-rockyou-hacker-30-of-sites-store-plain-text-13200.html |titolo= RockYou Hacker - 30% of Sites Store Plain Text Passwords |pubblicazione=New York Times |nome=Jolie |cognome=O'Dell |data=16 dicembre 2009 |accesso=23 maggio 2010}}</ref>
* Nel giugno del 2010, un ricercatore sulla sicurezza sud americano che va con lo pseudonimo "Ch&nbsp;Russo" ottenne informazioni sensibili sugli utenti di un popolare sito per il [[BitTorrent]], cioè [[The Pirate Bay]]. Ottenne l'accesso al pannello di controllo da amministratore del sito, e sfruttò una vulnerabilità di SQLI che gli rese possibile ottenere informazioni sugli account degli utenti, inclusi indirizzi IP, [[MD5]] [[Cryptographic hash function|password hashes]] e record di quali torrent ogni utente aveva caricato.<ref>{{Cita news|url=https://krebsonsecurity.com/2010/07/pirate-bay-hack-exposes-user-booty/ |titolo= The pirate bay attack |data=7 luglio 2010 }}</ref>
* Dal 24 al 26 luglio 2010, degli hacker dal [[Giappone]] e dalla Cina usarono un SQL injection per ottenere l'accesso ai dati sulle carte di credito dei clienti della Neo BEAT, una compagnia di Osaka che gestisce il sito di un grosso supermercato online. L'attacco ha danneggiato anche sette partner in affari come le catene di supermercati Izumiya Co, Maruetsu Inc, e Ryukyu Jusco Co. Il furto dei dati riguardò 12&nbsp;191 clienti. Il 14 agosto 2010 sono stati riportati più di 300 casi di informazioni sulle carte di credito usate per acquistare beni e servizi in Cina.
* Il 19 settembre 2010, durante le elezioni generali svedesi del 2010, un votante tentò una code injection a mano, scrivendo dei comandi SQL sulla scheda elettorale.<ref>{{Cita web|url=http://alicebobandmallory.com/articles/2010/09/23/did-little-bobby-tables-migrate-to-sweden |titolo=Did Little Bobby Tables migrate to Sweden? |editore=Alicebobandmallory.com |accesso=3 giugno 2011}}</ref>
* L'8 novembre 2010, il sito britannico [[Royal Navy]] fu compromesso da un hacker romeno chiamato TinKode che usò un attacco di SQL injection.<ref>[https://www.bbc.co.uk/news/technology-11711478 Royal Navy website attacked by Romanian hacker] ''BBC News'', 8-11-10, Accessed November 2010</ref><ref>{{Cita web|url=http://news.sky.com/skynews/Home/World-News/Stuxnet-Worm-Virus-Targeted-At-Irans-Nuclear-Plant-Is-In-Hands-Of-Bad-Guys-Sky-News-Sources-Say/Article/201011415827544 |titolo=Super Virus A Target For Cyber Terrorists
Line 310 ⟶ 309:
* Nel giugno del 2012, un gruppo di hacker rubò 450,000 credenziali di accesso da [[Yahoo!]]. I login erano memorizzati in semplice testo. Il gruppo sfondò la sicurezza di Yahoo tramite una "[[Set operations (SQL)#UNION operator|union]]-based SQL injection technique".<ref>Chenda Ngak. [https://www.cbsnews.com/8301-501465_162-57470956-501465/yahoo-reportedly-hacked-is-your-account-safe/ "Yahoo reportedly hacked: Is your account safe?"], CBS News. July 12, 2012. Retrieved July 16, 2012.</ref><ref>https://www.zdnet.com/450000-user-passwords-leaked-in-yahoo-breach-7000000772/</ref>
* Il 1º ottobre del 2012, un gruppo di hacker chiamati "Team GhostShell" pubblicò i record personali degli studenti, facoltà, dipendenti, laureati, di 53 università, incluse [[Harvard]], [[Princeton University|Princeton]], [[Università di Stanford|Stanford]], [[Cornell University|Cornell]], [[Johns Hopkins University|Johns Hopkins]], e l'[[University of Zurich]] su [[Pastebin|pastebin.com]]. Gli hacker dissero che volevano "fare prendere coscienza dei cambiamenti nell'educazione di oggi", lamentandosi del cambiamento delle leggi sull'educazione in Europa, e l'incremento delle tasse scolastiche negli USA.<ref>{{Cita news|cognome=Perlroth|nome=Nicole|titolo=Hackers Breach 53 Universities and Dump Thousands of Personal Records Online|url=https://bits.blogs.nytimes.com/2012/10/03/hackers-breach-53-universities-dump-thousands-of-personal-records-online/|giornale=New York Times|data=3 ottobre 2012}}</ref>
* Il 27 giugno 2013, il gruppo hacker "[[RedHack]]" sfondò il sito dell'amministrazione di Istanbul.<ref>{{Cita news|titolo=RedHack Breaches Istanbul Administration Site, Hackers Claim to Have Erased Debts |url=http://news.softpedia.com/news/RedHack-Breaches-Istanbul-Administration-Site-Hackers-Claim-to-Have-Erased-Debts-364000.shtml}}</ref> Essi affermarono che avrebbero cancellato i debiti che le persone avevano con compagnie dell'acqua, gas, internet, elettricità e telefono. Inoltre, pubblicarono username e password di amministratore per fare in modo che i cittadini potessero fare login e cancellare i loro debiti. Annunciarono questa notizia tramite [[Twitter]].<ref>{{Cita news|titolo=Redhack tweet about their achievement |url=https://twitter.com/RedHack_EN/statuses/350461821456613376 }}</ref>
* Il 4 novembre 2014, il gruppo di hacktivisti "RaptorSwag" compromise 71 database del governo cinese usando un attacco di SQL injection sul sito della camera del commercio cinese. I dati fatti trapelare furono postati pubblicamente assieme alla cooperazione di [[Anonymous]].<ref>http://news.softpedia.com/news/Hackers-Leak-Data-Allegedly-Stolen-from-Chinese-Chamber-of-Commerce-Website-396936.shtml</ref>
* In 2 febbraio 2014, un gruppo di hacker chiamato @deletesec fece trapelare 40,000 account dal sito di AVS TV.<ref>http://www.maurihackers.info/2014/02/40000-avs-tv-accounts-leaked.html</ref>
Line 319 ⟶ 318:
== Riferimenti nella cultura di massa ==
* Il login non autorizzato su un sito web tramite SQL injection fornisce uno spunto narrativo per la trama del romanzo ''[[Il seggio vacante]]'' di [[J. K. Rowling]], pubblicato nel 2012.
* UnUna cartonestriscia didel webcomic ''[[xkcd]]'' cartoon riguarda un personaggio di nomechiamato "Robert'); DROP TABLE students;--", che effettuail cui nome permette di effettuare una SQL injection. ComeIn risultatoriferimento dia questoquesta cartone,striscia l'SQL injection vienea volte chiamata qualche volta in modo informale 'Bobby Tables'.<ref>{{Cita web|cognome=Munroe|nome=Randall|titolo=XKCD: Exploits Of A Mom|url=https://xkcd.com/327/|accesso=26 febbraio 2013}}</ref><ref>{{Cita web|titolo=Bobby Tables: A guide to preventing SQL injection|url=http://bobby-tables.com/|accesso=6 ottobre 2013}}</ref>
* Nel 2014 un soggetto in Polonia ha legalmente rinominato la sua impresa in ''<nowiki>Dariusz Jakubowski x'; DROP TABLE users; SELECT '1</nowiki>'' con lo scopo di ostacolare le operazioni degli spammer [[Web scraping|harvesting bots]].<ref>{{Cita web|titolo=Jego firma ma w nazwie SQL injection. Nie zazdrościmy tym, którzy będą go fakturowali ;)|sito=Niebezpiecznik|lingua=pl|data=11 settembre 2014|url=http://niebezpiecznik.pl/post/jego-firma-ma-w-nazwie-sql-injection-nie-zazdroscimy-tym-ktorzy-beda-go-fakturowali/|accesso=26 settembre 2014}}</ref>
 
Line 336 ⟶ 335:
 
== Collegamenti esterni ==
* {{Collegamenti esterni}}
<!-- * [http://www.techyfreaks.com/2012/05/manual-sql-injection-tutorial.html Manual Sql Injection Tutorial] By The Ajay Devgan --> <!-- COLLEGAMENTO NON PIù ESISTENTE -->
* [httphttps://wwwcheatsheetseries.websecowasp.caorg/kbcheatsheets/sql_injectionSQL_Injection_Prevention_Cheat_Sheet.html OWASP SQL Injection KnowledgeCheat BaseSheets], by WebsecOWASP.
*[https://www.exploit-db.com/docs/english/17397-blind-sql-injection-with-regular-expressions-attack.pdf Blind Sql Injection – Regular Expressions AttackBlind Sql Injection with Regular Expressions Attack]
* [http://projects.webappsec.org/SQL-Injection WASC Threat Classification - SQL Injection Entry], by the Web Application Security Consortium.
* [https://web.archive.org/web/20121109235333/http://docs.google.com/leaf?id=0BykNNUTb95yzYTRjMjNjMWEtODBmNS00YzgwLTlmMGYtNWZmODI2MTNmZWYw&sort=name&layout=list&num=50 Why SQL Injection Won't Go Away], by Stuart Thomas.
* [https://web.archive.org/web/20151107080700/http://www.unixwiz.net/techtips/sql-injection.html SQL Injection Attacks by Example], by Steve Friedl
* [https://web.archive.org/web/20151116090859/https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet SQL Injection Prevention Cheat Sheet], by OWASP.
* [https://web.archive.org/web/20141211215029/http://www.breakthesecurity.com/2010/12/hacking-website-using-sql-injection.html SQL Injection Tutorial], by BTS.
* [http://sqlmap.org/ sqlmap: automatic SQL injection and database takeover tool]
* [https://go.microsoft.com/?linkid=9707610 SDL Quick security references on SQL injection] by Bala Neerumalla.
* [http://www.greensql.com/articles/backdoor-webserver-using-mysql-sql-injection Backdoor Web-server using MySQL SQL Injection] {{Webarchive|url=https://web.archive.org/web/20130402121201/http://www.greensql.com/articles/backdoor-webserver-using-mysql-sql-injection |data=2 aprile 2013 }} By Yuli Stremovsky
* [https://web.archive.org/web/20160405080934/http://www.sploitswiki.com/2011/02/deface-website-sql-injection.html Defacing website with SQL injection] by sploitswiki
* [https://slides.com/abhinavsejpal/sql-injection-for-beginners#/ Attacking web App with SQL injection] by Abhinav Sejpal
 
{{Portale|sicurezza informatica}}
 
[[Categoria:Tecniche di attacco informatico]]