Введение.
Месяц назад, когда работал с DLE и модулем uLogin заметил, что в модуле подозрительно простая проверка входящих данных и решил это проверить.
Мои подозрения подтвердились.
Подробности.
Основная ошибка заключается в том, что все входящие данные, практически, никак не фильтруются, есть только функция экранирования кавычек. Но этого мало для CMS DLE.
Логин составляется из имени и фамилии, но ничего нам не мешает в соц. сети или при заполнении дополнительных данных указать спец. символы, например, одинарную кавычку.
На скриншоте показал SQL ошибку при попытке изменить рейтинг новости.
Только благодаря тому, что есть ограничение поля name (40 символов) в таблице dle_users нельзя выполнить SQL инъекцию.
Зато префикс таблиц мы уже знаем.
Также можно устроить XSS атаку, т.к. данные о имени и фамилии сохраняются в поле fullname, которое имеет ограничение в 100 символов.
Благодаря данной ошибки можно внедрить банальный алерт или подключить js файл.
В тот же день, когда обнаружил данную ошибку отправил уведомление в тех. поддержку uLogin, но до сих пор ничего не изменилось…
Автор: shapeshifter08