
Une version dockerisée de koseven hello world pour jouer avec l'injection SQL CVE-2019-8979 affectant les versions < 3.3.10
Un hello world de https://github.com/koseven/koseven[koseven] conteneurisé pour jouer avec CVE-2019-8979, une vulnérabilité d'injection SQL affectant les versions < 3.3.10. Ce hello world provient en fait de la https://koseven.dev/documentation/orm/examples/simple[documentation], j'ai simplement ajouté les parties Docker et l'exploit PoC.
= CVE-2019-8979 Ce problème d'injection SQL a été initialement https://github.com/koseven/koseven/issues/323[signalé] par un tiers et corrigé le 27 février 2019 dans master, mais les développeurs ont oublié de publier une nouvelle version contenant le correctif. Par conséquent, la dernière version stable à l'époque, https://github.com/koseven/koseven/releases/tag/3.3.9[koseven-3.3.9] publiée le 20 novembre 2018, est restée vulnérable jusqu'à ce que https://github.com/koseven/koseven/releases/tag/3.3.10[koseven-3.3.10] soit publiée le 12 octobre 2020, après que https://elttam.com[elttam] a remarqué et divulgué privéement cet oubli aux développeurs principaux le 10 octobre 2020.
= Limitations
Bien que certaines informations puissent être obtenues depuis MySQL comme current_user(), database() ou les noms de tables et colonnes à partir de information_schema, il peut ne pas être possible de récupérer des données d'autres tables en raison de l'appel de strtoupper() https://github.com/koseven/koseven/blob/3.3.9/modules/database/classes/Kohana/Database/Query/Builder.php#L236[effectué] sur l'entrée de direction order by.
Cela est dû au fait que les noms de bases de données et de tables sont sensibles à la casse lorsque MySQL s'exécute sur un système d'exploitation où le répertoire de données se trouve sur un système de fichiers sensible à la casse. Par conséquent, cette SQLi peut n'être pleinement exploitable que si :
lower_case_table_names est > 0Voir https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html[Identifier Case Sensitivity (sensibilité à la casse des identifiants)] pour plus d'informations.
= Demo
[#img-demo] [link=https://asciinema.org/a/uQYxQn4vbB6XRFjf8pdIGbmAr] image::https://asciinema.org/a/uQYxQn4vbB6XRFjf8pdIGbmAr.png[Démo,200,200]