Баг-фикс SQL – инъекция в DLE-Forum v.2.4
В DataLife Engine Forum v.2.4 есть уязвимость, которая позволяет выполнять запросы в бд, и узнавать любую инфу, например о логинах и о паролях.
У кого стоит данная версия форума, рекомендуется проверить на уязвимость:
ваш_сайт.ру/?do=forum&showtopic=-
Если ВАш сайт уязвим, то в заголовке страницы будет отображен логин, и хеш пароля.
Уязвимость находится в скрипте engine/forum/sources/components/init.php в 446 строке!
У кого стоит данная версия форума, рекомендуется проверить на уязвимость:
ваш_сайт.ру/?do=forum&showtopic=-
1+union+select+1,2,CONCAT_WS(0x3a,name,password),4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23+from+dle_users+where+user_group=1+limit+1-- ,
Если ВАш сайт уязвим, то в заголовке страницы будет отображен логин, и хеш пароля.
Уязвимость находится в скрипте engine/forum/sources/components/init.php в 446 строке!
<font color=#0000FF>if</font> (<font color=#660000>$_REQUEST</font>['category'])
{
<font color=#660000>$act</font><font color=#8000FF> = </font>'category';<font color=#660000>$cid</font> =<font color=#660000>$_REQUEST</font>['category'];
<font color=#660000>$t_act</font><font color=#8000FF> = </font>'?c'.<font color=#660000>$cid</font>;
}
<font color=#0000FF>if</font> (<font color=#660000>$_REQUEST</font>['showforum'])
{
<font color=#660000>$act</font><font color=#8000FF> = </font>'forum';
<font color=#660000>$fid</font><font color=#8000FF> = </font><font color=#660000>$_REQUEST</font>['showforum'];
<font color=#660000>$t_act</font><font color=#8000FF> = </font>'?f'.<font color=#660000>$fid</font>;
}
<font color=#0000FF>if</font> (<font color=#660000>$_REQUEST</font>['showtopic'])
{
<font color=#660000>$act</font><font color=#8000FF> = </font>'topic';
<font color=#660000>$tid</font><font color=#8000FF> = </font><font color=#660000>$_REQUEST</font>['showtopic'];
<font color=#660000>$t_act</font><font color=#8000FF> = </font>'?t'.<font color=#660000>$tid</font>;
}
Данный код необходимо заменить на:
<font color=#0000FF>if</font> (<font color=#660000>$_REQUEST</font>['category'])
{
<font color=#660000>$act</font><font color=#8000FF> = </font>'category';
<font color=#660000>$cid</font><font color=#8000FF> = </font>intval(<font color=#660000>$_REQUEST</font>['category']);
<font color=#660000>$t_act</font><font color=#8000FF> = </font>'?c'.<font color=#660000>$cid</font>;
}
<font color=#0000FF>if</font> (<font color=#660000>$_REQUEST</font>['showforum'])
{
<font color=#660000>$act</font><font color=#8000FF> = </font>'forum';
<font color=#660000>$fid</font><font color=#8000FF> = </font>intval(<font color=#660000>$_REQUEST</font>['showforum']);
<font color=#660000>$t_act</font><font color=#8000FF> = </font>'?f'.<font color=#660000>$fid</font>;
}
<font color=#0000FF>if</font> (<font color=#660000>$_REQUEST</font>['showtopic'])
{
<font color=#660000>$act</font><font color=#8000FF> = </font>'topic';
<font color=#660000>$tid</font><font color=#8000FF> = </font>intval(<font color=#660000>$_REQUEST</font>['showtopic']);
<font color=#660000>$t_act</font><font color=#8000FF> = </font>'?t'.<font color=#660000>$tid</font>;
}