- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Маркетинг для шоколадной фабрики. На 34% выше средний чек
Через устранение узких мест
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Хеллп :(
Уже неделю мучаюсь с DLE, проблема началась ни с того ни с сего, походу дела взлом, но ничего толком не нашел по этому запросу.
Сервак MySQL вешается от запросов:
Sorting result | SELECT * FROM dle_users ORDER BY (user_id*(BENCHMARK(99999999999999999999,BENCHMARK(999999999999999
Был двиг 8.5, обновил до 9.3, проблема осталась, поставил начистую, но базу импортировал с сайта, пол дня поработал и опять запросы посыпались, если перезагрузить MySQL он может сразу засыпаться запросами, а могут через какое то время.
ЗЫ: DLE лицензия. В ТП сказали что таких запросов быть не должно. Но откуда они если двиг чистый?
Не должно быть таких запросов...
Скачайте FileSeek (программа для поиска текста в файлах) и пройдитесь по движку поиском по фразе "BENCHMARK"
Нету ничего такого.
Если в файлах нет ничего - ищите в базе. Необязательно сразу полную фразу, можно начать со слова select.
Положить во все php скрипты логгер всего поступающего в GET и POST запросах и потом поискать в логах BENCHMARK.
Сдаётся мне, что имеем дело с банальным SQL Injection.
На всякий случай код логгирующий все что летит в GET и POST запросах:
function GetPostToLogFile(){$log_path='log_get_post.txt';
$filelg=@fopen($log_path, 'a');
if ($filelg){
$tmp="POST:\n";
foreach($_POST as $key => $value){$tmp=$tmp.$key.'='.$value."\n";}
$tmp="\nGET:\n";
foreach($_GET as $key => $value){$tmp=$tmp.$key.'='.$value."\n";}
@fwrite($filelg, "----------START--------------------------------------------------\nSERVER_DATE: ".date('d.m.Y, H:i:s')."\nUSER_IP: ".$_SERVER['REMOTE_ADDR']."\nUSER_IP_FORWARD: ".$_SERVER['HTTP_X_FORWARDED_FOR']."\nSCRIPT_NAME: ".$_SERVER['SCRIPT_NAME']."\n$tmp\n----------END----------------------------------------------------\n\n");
@fclose($filelg);
}
}
Естественно, что:
$log_path='log_get_post.txt';
надо бы прописать от корня, а не относительный, если конечно все скрипты не лежат в одной папке, а то логи раскидает.
И быть готовым к тому, что логи могут в секунды превратиться в огромные.
Включать в скрипты удобно сохранив в отдельный файл, например "log_get_post.php", в отдельной папке, например "log_script", а потом конструкцией:
Отключить логгирование в любой момент не выдёргивая из всех файлов вызов можно дописав "return;" в начало функции:
function GetPostToLogFile(){
return; // выйдем из функции далее ничего не исполняя в этой функции
$log_path='log_get_post.txt';
ЗЫ: DLE лицензия. В ТП сказали что таких запросов быть не должно.
Есть тут ярый защитник DLE - ник помоему dlepro com, напишите ему, чтобы он убедился что поддержка у скрипта говяная!!!
А если по теме, то в стандартном коде нет такого запроса, который бы содержал ORDER BY (user_id, а так как у Вас ДЛЕ чистая, то очень вероятно, что это проблема стороннего модуля.
А если по теме, то в стандартном коде нет такого запроса, который бы содержал ORDER BY (user_id, а так как у Вас ДЛЕ чистая, то очень вероятно, что это проблема стороннего модуля.
но в теории sql-иньекция позволяет вставлять куски такого кода в обычные запросы.
если, как он пишет, DLE чистая и без модулей, то это какая-то новая неизвестная уязвимость.
В базе ничего нету.
GetPostToLogFile();
Куда примерно вставлять в скрипт?
Dimazzan, киньте список модулей, что установлены на сайте.
Куда примерно вставлять
В index.php к примеру. Хотя достаточно взять лог с сервера за тот день, когда произошло зависание и изучить его.
Как я писал выше, стоит чистеший движок 9.3 скачанный с dle-news.ru, на него перенеслась база и папки с шаблоном, uploads.
Раньше стоял дле форум 2.5
Значит спасет только лог после зависания сервера.