Данный материал предоставлен сайтом ProWebber.cc исключительно в ознакомительных целях. Администрация не несет ответственности за его содержимое.
Скачать бесплатно Фильтруем уязвимость в dle 8.2 и в раних версиях.
Скачать бесплатно Фильтруем уязвимость в dle 8.2 и в раних версиях.
Прочитал на ачате уязвимость с названием "раскрытие путей", долго искал в поисках ответа,что за зверь раскрытие путей
Уязвимость заключается в отсутствии фильтрации входного параметра "dle_skin" в файле init.php и позволяет удалённому пользователю добиться вывода ошибки функции, соответственно увидев пути к корню сайта.
что позволяет раскрытие пути взломщику?
ответ прост, взлом через соседний хост, т.е. если сайт находится на шаред хостинге, шанс на взлом увеличивается
init.php
Достаточно в бразере найти менеджер куки и подменить куку dle_skin параметром ../ и вы получите сие раскрытый путь :)
Исправить данную уязвимость просто
открываем index.php
перед
коментирую код: если есть какие либо вхождения набора символов .. или ../ то удаляем куки dle_skin
Автор статьи: kzpromo (ru-ua.ws)
Уязвимость заключается в отсутствии фильтрации входного параметра "dle_skin" в файле init.php и позволяет удалённому пользователю добиться вывода ошибки функции, соответственно увидев пути к корню сайта.
Warning: include_once(/home/.../public_html/templates/..//login.tpl): failed to open stream: No such file or directory in /home/.../public_html/engine/init.php on line 272 Warning: include_once(): Failed opening '/home/.../public_html/templates/..//login.tpl' for inclusion (include_path='.:/usr/lib/php:/usr/local/lib/php') in /home/.../public_html/engine/init.php on line 272 Невозможно загрузить шаблон: shortstory.tpl
что позволяет раскрытие пути взломщику?
ответ прост, взлом через соседний хост, т.е. если сайт находится на шаред хостинге, шанс на взлом увеличивается
init.php
} elseif (isset($_COOKIE['dle_skin']) AND $_COOKIE['dle_skin'] != '') {
if (@is_dir(ROOT_DIR.'/templates/'.$_COOKIE['dle_skin']))
{
$config['skin'] = $_COOKIE['dle_skin'];
}
}
...
$tpl->dir = ROOT_DIR.'/templates/'.$config['skin'];
...
include_once $tpl->dir.'/login.tpl';
Достаточно в бразере найти менеджер куки и подменить куку dle_skin параметром ../ и вы получите сие раскрытый путь :)
Исправить данную уязвимость просто
открываем index.php
перед
define ( 'DATALIFEENGINE', true );
вставляем кодик if (eregi("..", $_COOKIE['dle_skin']) or eregi("../", $_COOKIE['dle_skin'])) { unset($_COOKIE['dle_skin']); }
коментирую код: если есть какие либо вхождения набора символов .. или ../ то удаляем куки dle_skin
Автор статьи: kzpromo (ru-ua.ws)