![]() |
[ Обзор уязвимостей DX Board ]
Спасибо всем, кто тестил и нашёл ошибки в движке, а я выкладываю его исходники, как и обещал. Скачать можно тут:
http://dxboard.ru/DX%20Board%202.1.13.zip На сайте http://dxboard.ru по-прежнему можно проводить тесты, писать отзывы и т.д. Ставить форум так: заливаем на хост все файлы и папки из архива и обращаемся к index.php. Думаю, в ближайшее время напишу доки, как создавать новые оформления. Кстати, форум работает исключительно с windows-1251. P.S. Для тех, кто не в теме: https://forum.antichat.ru/thread67620.html Описание движка: http://dxboard.ru/viewtopic.php?id=3 Жду ваших мнений:) |
preg_match("/^(\d)+$/",$uid) === is_numeric
думаю хорошо бы было еслиб ты раставил все фалы по папкам как в ВБ и можно также сделать перaиксы для файлов .. типо function_db.php |
Ну, is_numeric в общем то не совсем то же, что и preg_match("/^(\d)+$/",$uid), так как
is_numeric возвратит true, если передать, например, число 0.123, или -123, или 5e10, или даже 0xFF. А регулярка только цифры пропускает. Цитата:
|
Хороший движок! афтару респект поюзайем)
|
Вложений: 1
Результаты проверки на безопасность. Тестирование на XSS атаки не проводилось. =================================== DX Board 2.1.12 final =================================== Дефолтные настройки: Database: dxboard Table prefix: dx_ Admin login: admin Желательно сделать немного рэндомными или оставить пустыми и добавить проверку на пустоту, чтоб пользователь заполнял при установке сам. =================================== Основные настройки с низким уровнем безопасности по дефолту. Желательно отключить: [v]Разрешать регистрироваться пользователям с повторными адресами e-mail [v]Разрешить незарегистрированным пользователям просматривать профили [v]Разрешить незарегистрированным пользователям просматривать список пользователей [v]Разрешить незарегистрированным пользователям просматривать список групп пользователей [v]Разрешить незарегистрированным пользователям просматривать онлайн-статистику [v]Разрешить незарегистрированным пользователям пользоваться поиском [v]Разрешать незарегистрированным пользователям читать чат [v]Разрешить модераторам менять авторов сообщений и тем Рекомендую добавить настройку регулировку длинны сообщения из админки. Сейчас отведено строго 150 символов на сообщение. =================================== Система контроля целостности файлов. Следит только за .php фалайми. Необходимо отслеживать ВСЕ файлы в каталогах. Мне ничто не мешает загрузить в /dxsmiles вебшелл lol.png и .htaccess с содержимым: Код HTML:
<Files lol.png>ereg() NULL-byte bypass Движок форума на ~90% полагается в защите на ereg(),eregi() , которые не совместимы бинарно и потому уязвимы к нулл-байту, прекращая обработку строки при встрече с ним. Форум уязвим при magic_quotes=OFF. Необходимо заменить эти функции на preg_match(). Например этот URL-эксплоит меняет пароль администратора: /lostpass.php?dat=2&code=12345678901234567890123456 789012&nick=h4ck%00'+or+nick='admin'/* =================================== Движок форума потенциально уязвим к возможным новым уязвимостям, поскольку нет защиты от register_globals=ON что дает возможность определить неопределенные переменные, а также magic_quotes=OFF что дает потенциальную уязвимость к SQL-атакам. Рекомендуеццо сделать следующее: [1] Самый простой способ - положить в корень .htaccess с содержимым: Код HTML:
# SecurityЖелательно внести небольшие изменения в код: 1) При фиксе register_globals=ON возникает проблема с сохранением админской сессии. Не разбирался почему. Вызвать в начале headers.php: PHP код:
Вызвать в начале headers.php: PHP код:
Недостаточная проверка имени файла. Дело в том, что файл вида lol.php.jpg в некоторых случаях обрабатывается апачем как пхп. В аттачах(lol.php.zip) /files.php Тоже самое с аватарами и галереей(lol.php.jpg) /profile.php =================================== Аттакующий, имея привилегии администратора, может загрузить вебшелл как смайл. Недостаточная проверка имени файла, точнее её полное отсутствие. Валидный смайл с шелом в EXIF-тэгах прилагается. /adminsmiles.php PHP код:
Аттакующий, имея привилегии администратора, может выполнить произвольный пхп-код,SQL-команды,создать произвольные файлы, используя фиктивный сервер обновлений форума. Необходимо установить пароль для смены адреса сервера. Эксплоит прилагается в аттаче. /update.php Формат команд PHP код:
SQL-inj возможна для забанненого пользователя =)) NEED: magic_quotes=OFF /index.php?PHPSESSID='[SQL-inj-more1row] PHP код:
Читалка файлов. Работает при отключенном интеллектуальном изменении изображений(по дефолту включено) Меню->Основные настройки-> [ ]Применять интеллектуальное изменение размеров изображений gif, jpeg и png форматов /check.php?act=2&addr=../../../../../../../etc/passwd /check.php PHP код:
|
Вот это супер просто, спасибо огромное! Буду патчить:)
Цитата:
Цитата:
Цитата:
Насчёт XSS - как раз к этому моменту нашёл ещё парочку с register_globals=on, тоже пофиксю А по поводу сервера обновлений - я его вообще переписать полностью думаю, а пароль на изменение добавлю. |
Elekt Зверь! Вот что значит человек знает своё дело +) я когда смотрел форум думал что движок не пробить а тут оказывается ...
|
Понял, почему сессия админская не начиналась, если фиксить register_globals. Скрипт, который вставляется в начало всех исходников, просто удалял все переменные (даже неглобальные), которые передавались из cookies. Например, удалялась переменная $_SESSION['username'], потому что $username было определено и бралось из cookies.
Вот более правильный код: PHP код:
|
Ну, вроде бы всё поправил, форум снова доступен по адресу http://dxboard.ru, скачать новую версию можно тут: http://dxboard.ru/DX%20Board%202.1.13.zip
Код:
[2.1.13] |
не работает капча и не показывает картинки в постах. в чем может быть проблема?
|
| Время: 00:12 |