Обзор уязвимостей Danneo CMS

Обзор уязвимостей Danneo CMSDanneo 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 ):