Joomla.it Forum

Non solo Joomla... => Sicurezza => : inzet 16 May 2016, 20:23:25

: SQL Injection in com_content in J!3.5
: inzet 16 May 2016, 20:23:25
Ciao,

ho un sito con Joomla 3.5 con alcuni addon quali jdownloads, community builder, ed altri.

Ho notato nei log stringhe come queste:
:
[tt]<ip>  - - [30/Apr/2016:06:03:37 +0200] "GET /component/content/article.html?id=1655+or+1=(%2f**%2fsElEcT+1+%2f**%2ffRoM(%2f**%2fsElEcT+count(*),%2f**%2fcOnCaT((%2f**%2fsElEcT(%2f**%2fsElEcT(%2f**%2fsElEcT+%2f**%2fcOnCaT(0x217e21,count(*),0x217e21)+%2f**%2ffRoM+parkinson34.jml_jdownloads_files_backup))+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2flImIt+0,1),floor(rand(0)*2))x+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2fgRoUp%2f**%2fbY+x)a)+and+1=1 HTTP/1.1" 500 2278 "[url=http://www.parkinson.it/component/content/article.html?id=1655+or+1=(%2f]http://www.sito.it/component/content/article.html?id=1655+or+1=(%2f[/url]**%2fsElEcT+1+%2f**%2ffRoM(%2f**%2fsElEcT+count(*),%2f**%2fcOnCaT((%2f**%2fsElEcT(%2f**%2fsElEcT(%2f**%2fsElEcT+%2f**%2fcOnCaT(0x217e21,count(*),0x217e21)+%2f**%2ffRoM+parkinson34.jml_jdownloads_files_backup))+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2flImIt+0,1),floor(rand(0)*2))x+%2f**%2ffRoM+information_schema.%2f**%2ftAbLeS+%2f**%2fgRoUp%2f**%2fbY+x)a)+and+1=1" "Mozilla/5.0 (Windows; U; Windows NT 5.1; pt-PT; rv:1.9.1.2) Gecko/20090729 Firefox/3.5.2 (.NET CLR 3.5.30729)"
[/tt]
Mi sono sono rizzate le antenne, perché poi funziona anche!
:
[tt][size=1em]1062Duplicate entry '!~!185!~!1' for key 'group_key' SQL=SELECT catid FROM #__content AS c WHERE [url=http://c.id]c.id[/url] = 1655 or 1=(/**/sElEcT 1 /**/fRoM(/**/sElEcT count(*),/**/cOnCaT((/**/[/size][size=1em]sElEcT(/**/sElEcT(/**/sElEcT /**/cOnCaT(0x217e21,count(*),[/size][size=1em]0x217e21) /**/fRoM parkinson34.#__jdownloads_[/size][size=1em]files_backup)) /**/fRoM information_schema./**/tAbLeS /**/lImIt 0,1),floor(rand(0)*2))x /**/fRoM information_schema./**/tAbLeS /**/gRoUp/**/bY x)a) and 1=1 LIMIT 1 [/size][/tt]
Parrebbe un problema di controllo dell'input da qualche parte, che non ho ancora individuato con precisione.
Per esempio in components/com_content/router.php intorno alla riga 530


 
:
                                        $db = JFactory::getDbo();
                                        $query = $db->getQuery(true)
                                                ->select($db->quoteName('id'))
                                                ->from('#__content')
                                                ->where($db->quoteName('catid') . ' = ' . (int) $vars['catid'])
                                                ->where($db->quoteName('alias') . ' = ' . $db->quote($segment));
                                        $db->setQuery($query);
                                        $cid = $db->loadResult();


non conosco bene Joomla e spero che il metodo $db->quote() esegua anche l'escape della stringa alla stessa stregua di mysqi_real_escape_string(), altrimenti ci sono problemi.
Per gli altri tipi di input via id viene semplicemente effettuato un cast ad integer ((int) $vars['catid']), magari da qualche parte se ne sono dimenticati.
Resta il fatto che il buco di sicurezza va chiuso.


Bye,

Gianluca









: Re:SQL Injection in com_content in J!3.5
: giusebos 16 May 2016, 20:35:17
cortesemente usa i tag code >:(
: Re:SQL Injection in com_content in J!3.5
: inzet 17 May 2016, 02:09:18
Ciao, ho modificato il testo seguendo le tue indicazioni ma spero che, al di là dell'aspetto estetico, qualcuno mi risponda nella sostanza.

Grazie.

Gianluca
: Re:SQL Injection in com_content in J!3.5
: MariaElenaBoschi 17 May 2016, 09:17:45
se joomla è 3.5.1 e se tutte le altre estensioni sono all'ultima versione devi segnalare il problema a joomla.org
https://developer.joomla.org/contact-security-team.html
: Re:SQL Injection in com_content in J!3.5
: giusebos 17 May 2016, 09:33:52
non ha sistemato, la non si tratta di aspetto estetico: stai impedendo di visualizzare la pagina come si deve per la prima parte del codice, quella dopo

Ho notato nei log stringhe come queste:


Se si vuole usare un forum per chiedere aiuto, sarebbe prima meglio leggersi il regolamento! ;)
: Re:SQL Injection in com_content in J!3.5
: inzet 18 May 2016, 00:15:31
Grazie Maria Elena, non conoscevo questo link.
Ho seguito il tuo suggerimento.
: Re:SQL Injection in com_content in J!3.5
: MariaElenaBoschi 18 May 2016, 09:03:46
sei sicuro di avere le estensioni aggiuntive aggiornate all'ultima versione e correttamente mantenute? (es... se un estensione non viene più mantenuta anche avere l'ultima versione non serve a nulla)
..incomincia a verificare jdownloads.
Non basta che il tuo joomla ti dica che è tutto aggiornato, devi verificare dai siti degli sviluppatori.

Comunque se abiliti il debug dovresti riuscire a vedere dove accade
: Re:SQL Injection in com_content in J!3.5
: MariaElenaBoschi 18 May 2016, 20:06:01
io credo che la tua vulnerabilità sia questa https://www.gavick.com/updates?task=update&id=2549&catid=4#
: [RISOLTO] SQL Injection in com_content in J!3.5
: MariaElenaBoschi 20 May 2016, 09:22:05
la soluzione è aggiornare le estensioni visto che il template non lo era.

Visto che hanno tutti fretta quando si tratta di ricevere e ne hanno molta meno quando si tratta di dare... il risolto lo metto io ;)
: Re:SQL Injection in com_content in J!3.5
: giusebos 20 May 2016, 11:12:08
è per questo che penso che prima si mette a posto la discussione e poi si risponde, l'utente sarà più incentivato a tenere un comportamento corretto secondo gli standard della maggioranza dei forum, non secondo un gruppo di "sociopatici" adepti di joomla ;D ;D ;D ;D ;D

Sopratutto con i nuovi andrebbe risposto subito con una nuova domanda: "se poi ti rispondo, inserirai il risolto alla fine esattamente come va messo?" E ancora, "Se ti rispondo inserirai il codice nel modo appropriato?"

ma credo che susciteremo solamente altra polemica