Обзор уязвимостей Danneo CMS
Danneo CMS <= 0.5.2 Remote SQL-injection
Danneo CMS — одна из самых успешных русских CMS с открытым исходным кодом. По своему опыту могу сказать, что в рунете довольно распространена. Однажды уже находил баги в этой CMS, но с выходом версии 0.5.2 (последняя на данный момент) их устранили.
Новая обнаруженная уязвимость находится в модуле голосований при добавлении комментариев.
Уязвимый код (/mod/poll/comment. php@124-130 ):
$comtext =( $setting [ ‘peditor’ ]== «yes» ). commentparse ( $comtext ). deltags ( commentparse ( $comtext ));
$comname = ( preparse ( $usermain [ ‘logged’ ], THIS_INT )== 1 && preparse ( $usermain [ ‘userid’ ], THIS_INT )> 0 ). $usermain [ ‘uname’ ]. substr ( deltags ( $comname ), 0. 50 );
$comtitle = substr ( deltags ( $comtitle ), 0. 255 );
$in = $db -> query ( «INSERT INTO «. $basepref. «_polling_comment VALUES
(NULL,'». $id. «‘,'». $usermain [ ‘userid’ ]. «‘,'». NEWTIME. «‘,
Уязвимость возникает после обрезания строки в переменной $comtitle до 255 символов, что дает возможность проведения фрагментированной SQL-инъекции.
Однако реализация уязвимости затрудняется фильтром (/base/danneo. track. php ):