
Un docker-contained koseven hello world para jugar con SQL injection CVE-2019-8979 que afecta versiones < 3.3.10
Un hello world de https://github.com/koseven/koseven[koseven] dockerizado para jugar con CVE-2019-8979, una vulnerabilidad de inyección SQL que afecta a versiones < 3.3.10. Este hello world proviene en realidad de la https://koseven.dev/documentation/orm/examples/simple[documentación], solo agregué las partes de Docker y el exploit PoC.
= CVE-2019-8979 Este problema de inyección SQL fue originalmente https://github.com/koseven/koseven/issues/323[reportado] por un tercero y corregido el 27 de febrero de 2019 en master, pero los desarrolladores olvidaron publicar un nuevo lanzamiento que contuviera la corrección. Como resultado, la última versión estable disponible en ese momento, https://github.com/koseven/koseven/releases/tag/3.3.9[koseven-3.3.9] publicada el 20 de noviembre de 2018, permaneció vulnerable hasta que https://github.com/koseven/koseven/releases/tag/3.3.10[koseven-3.3.10] se lanzó el 12 de octubre de 2020, después de que https://elttam.com[elttam] notara y divulgara de forma privada el descuido a los desarrolladores principales el 10 de octubre de 2020.
= Limitaciones
Aunque se puede obtener cierta información de MySQL como current_user(), database() o nombres de tablas y columnas de information_schema, puede que no sea posible recuperar datos de otras tablas debido a que https://github.com/koseven/koseven/blob/3.3.9/modules/database/classes/Kohana/Database/Query/Builder.php#L236[se llama] a en la entrada de dirección de .
strtoupper()order byEsto se debe a que los nombres de bases de datos y tablas distinguen entre mayúsculas y minúsculas cuando MySQL se ejecuta en un sistema operativo donde el directorio de datos reside en un sistema de archivos que distingue entre mayúsculas y minúsculas. Como resultado, esta SQLi puede ser completamente explotable solo si:
lower_case_table_names es > 0Consulte https://dev.mysql.com/doc/refman/8.0/en/identifier-case-sensitivity.html[Identificador Case Sensitivity] para más información.
= Demo