Raino

Левые файлы в папке download ocstore 1.5.5.1.2

Рекомендуемые сообщения

Raino    3

Недавно обнаружил пару подозрительных файлов в папке downloads вида "1024.php.jpg.рандомный набор", внутри оказался не зловред, а игрушка 1024, причем рядом валялся файл с лицензией на нее, такого-же формата :). Однако прецедент пугающий. Детальнее проблема описана здесь http://forum.opencart.com/viewtopic.php?f=179&t=135903 и судя по всему носит массовый характер. И если на чистом opencart проблема решается запретом загрузки файлов в магазин, то в ocstore эти настройки в админке я не нашел http://www.webhostinghub.com/help/images/stories/opencart/opencart15-options/opencart15-options-allowed-uploadextensions.gif и пришлось потанцевать с бубном. В общем, будьте внимательны граждане.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
halfhope    157

Постоянно нахожу залитые шеллы в директории "downloads" на своих демо-сайтах. А отключить руки не доходят т.к. это относительно безопасно, хотя все решается достаточно просто.

 

Радикальное решение. Из файла "catalog/controller/product/product.php" удалите функцию upload это не позволит вообще загружать файлы на сервер со стороны витрины магазина. А вот код для заливки файла через эту уязвимость, так, на всякий случай:

 

 

<html>
    <body>
        <form action="http://1541.ocstore.im/index.php?route=product/product/upload" method="post" enctype="multipart/form-data">
            <input type="file" name="file">
            <input type="submit" value="Upload">
        </form>
    </body>
</html> 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Raino    3

Так и сделал, закоментил эту функцию, так как не используется. Я бы не сказал, что это совсем уж безопасная уязвимость, злоумышленники могут залить много мусора и тогда квота на диск быстро кончится (на некоторых тарифах она совсем скромная), использовать магазин как левый файлообменник, или же вообще окажется, что владелец магазина стали счастливым хранителем коллекции детского порно, с бонусом в виде письма роскомнадзору. В общем, вариантов масса, да и просто сам факт не приятен, что дырка есть. В принципе, если из админки  ocstore убрана возможность рулить всем этим делом, может стоит изначально исключить эту функцию из контроллеров сборки?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
ashap    184

Так и сделал, закоментил эту функцию, так как не используется. Я бы не сказал, что это совсем уж безопасная уязвимость, злоумышленники могут залить много мусора и тогда квота на диск быстро кончится (на некоторых тарифах она совсем скромная), использовать магазин как левый файлообменник, или же вообще окажется, что владелец магазина стали счастливым хранителем коллекции детского порно, с бонусом в виде письма роскомнадзору. В общем, вариантов масса, да и просто сам факт не приятен, что дырка есть. В принципе, если из админки  ocstore убрана возможность рулить всем этим делом, может стоит изначально исключить эту функцию из контроллеров сборки?

то что по вашему скрину находится во вкладке сервер

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Raino    3

Ваша правда, недоглядел)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    401

Raino сказал(а) 24 Дек 2014 - 11:38 AM:

Недавно обнаружил пару подозрительных файлов в папке downloads вида "1024.php.jpg.рандомный набор", внутри оказался не зловред, а игрушка 1024, причем рядом валялся файл с лицензией на нее, такого-же формата :). Однако прецедент пугающий.

Файлы там появляются вполне легитимным путём. Есть магазины, которые работают с пользовательскими файлами. Если вам пришлют email с аттачем, пусть даже со зловредом - это будет пугающим прецендентом?

Опасность такие файлы могут представлять, когда злоумышленник может воспроизвести полное имя файла, с вон тем рандомным набором на конце. Рандомный набор можно подсчитать и воспроизвести, если знать ключ шифрования, указываемый в админке. Знать его можно было раньше, т.к. использовалось значение "12345". Пару вариантов фиксов предлагалось и уже довольно давно там генерится уникальная строка при каждой инсталляции.

Собственно, и всё по этой "угрозе". Ваш магазин просто проверяли в надежде, что ключ шифрования совпадёт.

Если магазин точно не работает с файлами покупателей, можно, конечно, и кардинально всё отрезать или сделать отключение этого аплоада через админку.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 410

rb2, старая уязвимость. еще есть через загрузку файлов под демо пользователем

с недавних пор добавили в .htaccess

RewriteRule ^download/(.*) /index.php?route=error/not_found [L]

должно спасать

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
markimax    1 483

FAQ ОТВЕТ: ПОЧЕМУ МОДУЛЬ НЕ ДАЕТ СТОРОННИМ ПОЛЬЗОВАТЕЛЯМ ЗАГРУЖАТЬ ИЗОБРАЖЕНИЯ И ФАЙЛЫ НА СЕРВЕР

http://habrahabr.ru/post/224351/

Цитата:

    Здесь на помощь строителям демократии приходят и проблемы с настройкой try_files в nginx,
    и обрезание строки с помощью %00, и даже банальный обход проверки MIME и загрузки *.php напрямую
    (но это совсем тяжёлый случай, движки, грешащие этим, скорее всего имеют ещё пару десятков других дыр).


Т.е. иногда, защита зависит даже не от безопасного кода модуля, а от настроек хостера.

 

Т.е. это  "залет".

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    401

rb2, старая уязвимость. еще есть через загрузку файлов под демо пользователем

с недавних пор добавили в .htaccess


RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
должно спасать

Ошибка здесь, кстати. В OC2 действительно такое правило, но папки `^download/` в доступе у апача нет.

tratata.ru/system/download/index.html честно отдаёт белую страницу (пустой index.html, который там есть из коробки).

Надо `^system/download/......`

Даже не так. Вот правильная строчка (слэш перед индекспхп тоже лишний):

RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
И аналогично на `system/upload` наверное. Не вижу причин, зачем посетителям отдавать апачем загруженные ими файлы. Хотя надо смотреть, как они админу отдаются при просмотре загруженных пользователями файлов.

UPD: А-а-а-а, понял. Я на OC2 смотрю, а в ocs15512 действительно папка `download` в корне. Ну тогда только слэш убрать перед index.php.

Изменено пользователем rb2
UPD OC2 vs ocs15512

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
freelancer    1 410

я бы в 1.5.x из коробки запретил закачивать файлы в download, хотя бы потому что это слабо валидируется. злоумышленник может забить место на хостинге большими файлами

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
rb2    401

Разве что переключателем.

Не торгуешь печатью на кружках, на футболках, --на лбу--, на биллбордах, кастомными фотообоями на стенках, надписями из... э-э-э... плёнки такой, забыл... не торгуешь фотокартинами, ретушью фотографий, восстановлением данных, --подделкой документов--, рецензией/публикацией, печатью по запросу -- вздыхаешь с облегчением и выключаешь загрузку.

А если что-то такое и надо принимать файлы - вздыхаешь, но уже по-другому, ставишь в крон какое-нибудь мелкое правило и скрипт проверяет наличие новых файлов в стрёмных папках раз в 10 минут и шлёт email-уведомления в случае чего.

Оно-то, конечно, можно всё перелопатить, там убрать, там добавить - но это же вечная проблема изменнного кода и совместимости с модулями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NSK54    0

Разве что переключателем.

Не торгуешь печатью на кружках, на футболках, --на лбу--, на биллбордах, кастомными фотообоями на стенках, надписями из... э-э-э... плёнки такой, забыл... не торгуешь фотокартинами, ретушью фотографий, восстановлением данных, --подделкой документов--, рецензией/публикацией, печатью по запросу -- вздыхаешь с облегчением и выключаешь загрузку.

А если что-то такое и надо принимать файлы - вздыхаешь, но уже по-другому, ставишь в крон какое-нибудь мелкое правило и скрипт проверяет наличие новых файлов в стрёмных папках раз в 10 минут и шлёт email-уведомления в случае чего.

Оно-то, конечно, можно всё перелопатить, там убрать, там добавить - но это же вечная проблема изменнного кода и совместимости с модулями.

Вот-вот! И Я про то же. Нам нужно, чтоб клиент мог приложить свой фаил. Стоит ocstore 15512. Запретить загрузку фаила и напрягать клиента после заказа слать фаил на почту? Так на почту тоже вирусы присылают, мы их проверяем и открываем/или удаляем. Я не очень секу в данной теме, но верно ли я понимаю, что если фаил придет в корень в download, то могут каким то образом взломать? кстати, может это важно но у нас пароли космические и два пользователя со всеми правами, имена пользователей без admin...

Как быть то...расскажите, пожалуйста. Всю голову сломала, читая, то один форум, то другой....

 

И верно ли я поняла, что нужно добавить в htaccess:

RewriteRule ^download/(.*) index.php?route=error/not_found [L]               (без / перед index ? )

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
halfhope    157

Вот-вот! И Я про то же. Нам нужно, чтоб клиент мог приложить свой фаил. Стоит ocstore 15512. Запретить загрузку фаила и напрягать клиента после заказа слать фаил на почту? Так на почту тоже вирусы присылают, мы их проверяем и открываем/или удаляем. Я не очень секу в данной теме, но верно ли я понимаю, что если фаил придет в корень в download, то могут каким то образом взломать? кстати, может это важно но у нас пароли космические и два пользователя со всеми правами, имена пользователей без admin...

Как быть то...расскажите, пожалуйста. Всю голову сломала, читая, то один форум, то другой....

 

И верно ли я поняла, что нужно добавить в htaccess:

RewriteRule ^download/(.*) index.php?route=error/not_found [L]               (без / перед index ? )

 

Если у Вас стоит OpenCart версии выше 1.5.4.1, то в папке download создайте файл .htaccess со следующим содержимым:

SetHandler send-as-is

Этого будет достаточно. даже если на сервер загрузят исполняемый php файл, то он будет не выполнен, а скачан)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NSK54    0

Если у Вас стоит OpenCart версии выше 1.5.4.1, то в папке download создайте файл .htaccess со следующим содержимым:

SetHandler send-as-is

Этого будет достаточно. даже если на сервер загрузят исполняемый php файл, то он будет не выполнен, а скачан)

Огромное спасибо! Огроменное такое "спасибо") Сделаем, т.к. версия выше 1541

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
halfhope    157

Огромное спасибо! Огроменное такое "спасибо") Сделаем, т.к. версия выше 1541

 

Я ошибся, решение актуально для всех версий. Так же, если не планируется скачивать пользователями файлы, то можно добавить в .htaccess (тот что в корне) правило:

RewriteRule ^download/(.*) /index.php?route=error/not_found [L]

Тогда в раздел вообще не войти извне. Только из админки, по-моему, можно будет скачать. Кстати, если пользователи загружают фотографии, то могу сделать предпросмотр (превью) загружаемых изображений. 

Изменено пользователем halfhope

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
NSK54    0

Я ошибся, решение актуально для всех версий. Так же, если не планируется скачивать пользователями файлы, то можно добавить в .htaccess (тот что в корне) правило:

RewriteRule ^download/(.*) /index.php?route=error/not_found [L]

Тогда в раздел вообще не войти извне. Только из админки, по-моему, можно будет скачать. Кстати, если пользователи загружают фотографии, то могу сделать предпросмотр (превью) загружаемых изображений. 

Там и фото, и макеты для печати, Превью не нужно, мы их через сервер скачаем, проверим и откроем.

А вот фаилы для скачки будут, думаю. Рекомендации к продукции, хотя может мы их сделаем в виде картинки, пока еще не решила. Ваше решение, думаю, все таки пригодится. Спасибо еще раз, если что обращусь;)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти


  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу