Joomla.it Forum
Non solo Joomla... => Sicurezza => : 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
-
cortesemente usa i tag code >:(
-
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
-
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
-
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! ;)
-
Grazie Maria Elena, non conoscevo questo link.
Ho seguito il tuo suggerimento.
-
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
-
io credo che la tua vulnerabilità sia questa https://www.gavick.com/updates?task=update&id=2549&catid=4#
-
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 ;)
-
è 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