Недостаточная фильтрация данных - способ взлома и защиты DLE
За последнее время участились случаи взлома сайтов на CMS DataLife Engine, это связано с новоиспеченной уязвимостью в популярном движке. Думаю пора открыть завесу тайны и рассказать как использовать эту дыру и как уберечь свой сайт. Почему я это делаю спросите Вы, отвечаю - больше половины проектов обновились до DLE 9.0, а на старые версии поставлены заплатки. Не расстраиваетесь, еще можно отыскать "дырявые" сайты, администратор которых не следит за выходом исправлений. В полной новости вы узнаете как взломать сайт на DLE и как уберечь свой проект от покушений.
Взлом сайта на DLE версии ниже 9.0, инструкция (Работаем через браузер Opera 10).
1. Заходим на сайт жертвы
2. Регистрируемся и авторизуемся на сайте
3. Переходим по ссылке http://site.ru/engine/images.php (где site.ru - адрес жертвы)
4. Открываем исходный код открытой нами страницы и после:
(строка может немного отличаться и повторяться 2 раза, вставляем после 1й)
вставляем:
Нажимаем в браузере, под вкладками Применить изменения
5. После этих действий необходимо проверить работоспособность дырки, для этого на странице http://сайт.ру/engine/images.php, чей исходный код мы редактировали пунктом выше, нажимаем Загрузить. В списке загруженных файлов должен появиться dbconfig.php, мы можем продолжить...
Что бы скачать файл конфига мы должны навести на него указатель мыши и посмотреть ID, затем через Исходный код страницы / Применить изменения мы вставляем в любое место страницы сайта жертвы ссылку вида:
или в ЛС себе любимому отсылаете:
нижние подчеркивания в URL убираем!!!
Затем открываем это ЛС и скачиваем файл dbconfig.php с данными для входа в phpMyAdmin, адрес которой обычно
сайт.ру/phpmyadmin/
сайт.ру/myadmin/
сайт.ру/myphpadmin
сайт.ру/sqladmin
myadmin.сайт.ру/
myphpadmin.сайт.ру/
https://phpmyadmin.сайт.ру/
Только что я рассказал Вам как взломать сайт на DataLife Engine, удачи.
Сейчас настало время перейти к рассмотрению способа защиты от взлома, описанного выше:
1. Открываем файл engine/inc/files.php и находим:
заменяем на:
if ( $serverfile != '' ) {
$serverfile = str_replace( "\\", "/", $serverfile );
$serverfile = str_replace( "..", "", $serverfile );
$serverfile = str_replace( "/", "", $serverfile );
$serverfile_arr = explode( ".", $serverfile );
$type = totranslit( end( $serverfile_arr ) );
$curr_key = key( $serverfile_arr );
unset( $serverfile_arr[$curr_key] );
if ( in_array( strtolower( $type ), $allowed_files ) )
$serverfile = totranslit( implode( ".", $serverfile_arr ) ) . "." . $type;
else $serverfile = '';
}
if( $serverfile == ".htaccess") die("Hacking attempt!");
2. Открываем файл engine/classes/thumb.class.php и находим:
добавляем выше этой строки:
if ($this->img['tinggi_thumb'] < 1 ) $this->img['tinggi_thumb'] = 1;
Установка защиты от взлома DLE, а точнее исправление недостаточной фильтрации данных завершена.




Предыдущая статья - Защита базы данных (БД) в папке backup dle
Следующая статья - Недостаточная фильтрация входящих данных



Все категории: