[Хак] Доступность файлов в закрытых разделах

Тема в разделе "DataLife Engine", создана пользователем immersive, 1 ноя 2013.

  1. immersive

    immersive

    Регистрация:
    1 ноя 2013
    Сообщения:
    15
    Симпатии:
    2
    Есть одна лазейка в DLE, которая позволяет скачивать файлы из новости, даже если эта новость находится в скрытом разделе.

    Давайте для начала рассмотрим ту защиту, которая собственно и не дает нам свободно скачать файл по прямой ссылке /engine/download.php?id=123

    Преграда №1.
    Настройки групп пользователей. Т.е. скачивать файлы могут только те пользователи, которым это разрешено в настройках группы. Остальные получают ошибку "Access denied".

    Преграда №2.
    Скорее чисто символическая, защита от не продвинутого пользователя. Проверяется реферер, т.е. файл будет доступен только в том случае, если пользователь кликнул по ссылке на сайте. Но нам же ничего не мешает самому подправить код странички и вставить туда ссылок с любым ID.

    А теперь вспомним еще о 2х параметрах, которые так же следовало бы учесть:
    Параметр №1.
    При добавлении новости, в закладке "доступ" можно определенной группе выставить уровень доступа "запретить просмотр". Но если в новости находится ценный файл который доступен только перечисленным группам, то злоумышленник все равно сможет получить доступ к файлу простым перебором.

    Параметр №2.
    В настройках групп пользователей в параметре "Доступные разделы" можно перечислить список категорий к которым будет открыт доступ. Получается та же ситуация. Простым методом перебора ID файлов можно будет скачать любой файл, даже не имея доступа в закрытый раздел.


    Со вступлением разобрались. Теперь, собственно, решение данной проблемы:
    Открыть файл engine/download.php
    Найти строку:
    Заменить на (Для DLE 9.6 и старше):
    Для младших версий DLE вставить:
     
    gmp нравится это.