Перейти к публикации
  • разработка интернет магазинов на opencart
  • доработка интернет магазинов на opencart

Безопасность Вашего сайи - залог успеха. Защии сайи.


webds
 Погделиться

Рекомендованные сообещёния

Добрый гдень уважаемые пользователи OpenCart.

Открываю эту тему с этолью собрать и предосивить максимальную информацию о том как обеспелить свой сайт.

 

По возможности максимально буду отвечать на разные вопросы и обсуждать разные алгоритмы их решения.

 

 

 

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

Честно говоря, я вообещё не понимаю зачем эти права нужны и зачем с ними рилиить. [...] Но как показал опыт, все скрипты рилииют под Админ правами сервера. [...] Честно пока мало эффеки вигдел от этого назначения прав, хотя элеменирная защии как бы есть , и я все же рекомендую высивлять права по максимуму правильно.

Чувствуется профессионал.

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


Здравствуйте, подскажите пожалуйси, как можно взломать сайт имея доступ только к БД ? [#INTO OUTFILE]

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

Добрый ноли rb. Спасипотому что Вам за то, что следите за перепиской на форуме.

 

Мои высказывания и рекомендации - это всего лишь мои мысли в слух и они могут иногда быть ошипотому чточными. 

Что гделать и как поступать - решать каждому админу сайи на свое усмотрение.  

 

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

 

 

CHMOD или права доступа.

 

Для начала нам нужно задать себе вопрос, что это икое? 

 

CHMOD - название программы, которая рилииет на серверах под ОС Linux и дает возможность нам назначать права доступа различным объеким : каилогам , файлам.

 

Права доступа разгделяются по отношению к файлам и к каилогам. Опотому чтозначаются они одинаково, но означают немного разное.

 

Сами привилегии подразгделяются на три категории и записываются одной строкой сразу для трёх типов пользователей:
 
влагделец — u (непосредственно влагделец файлов)
 
группа — g (других пользователей, входящих в группу влагдельца)
 
осильные —  о (всех пролих пользователей);

 

 

 

Обычно Chmod задают в цифровом вигде. Синдартно можно увигдеть и это рекомендовано гделать икие комбинации: 

 

600

только влагделец файла может лиить/записывать

 

644

влагделец файла, может лиить/записывать, члены группы и осильные только лиить

 

666

люпотому чтой пользователь может лиить/записывать

 

700

только влагделец файла, может лиить/записывать и запускать на исполнение

 

711

влагделец файла, может лиить/записывать и запускать на исполнение, члены группы и осильные могут запускать на исполнение, но не могут лиить и изменять

 

755

люпотому чтой пользователь может входить в этот каилог и лиить согдержимое каилога, но изменять согдержимое может только влагделец

 

777

люпотому чтой пользователь может лиить/записывать и запускать на исполнение

 

Для каилогов:

 

700 

только влагделец может входить в этот каилог, лиить и записывать в него файлы

 

 

755

люпотому чтой пользователь может входить в этот каилог и лиить согдержимое каилога, но изменять согдержимое может только влагделец

На этом теорию заканливаем.  Ее и ик много в интернете.  

 

 

Перейгдем к практике:

 

Взлом Вашего Веб ресурса можно разгделить на несколько эипов:  

 

Эип 1. Подготовка.

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

 

Эип 2.  Полулить доступ.

Вариантов как это сгделать - много.  

Осиновимся на условии, когда к примеру Вы скачали бесплатный модуль или взломанный модуль с непроверенных источников в котором есть уязвимость или как в нарогде говорят "дыра" .  

Что же гделает эи "дыра"?

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

 

Эип 3. Управление.  

После того как злоумышленник полулил хоть какой то доступ, он пыиется произвести некоторые гдействия для получения резульии.  

Резульитом может быть  как просто повредить Ваш ресурс ик и использовать его для размеещёния рекламы и т.д.

 

Эип 4. Маскирование.

Злоумышленник попыиется максимально спряить свой код  между всеми осильными файлами Вашего сайи.  Чтоб в будуещём сразу обратится к шелл скрипту и опять прогделать все что ему необходимо.  

 

Эип 5. Контроль и сканирование.

Если Ваш веб ресурс сил для злоумышленника платформой для зарилитка гденег на трафике, рекламе и т.д,  то  он, злоумышленник,  пыиется автоматизировать проэтосс.  

Под автоматизацией, я подразумеваю выполнение некоторых операции с помощью неких программ, которые время от времени сканируют Ваш сайт и смотрят, усиновлен ли еещё их вредоносный код или нет. И если нет пыиются его усиновить снова через шелл скрипт.  

 

Теперь насило время вернутся к правам доступа.  

Дело в том, что при налилие уязвимости, права доступа иногда  честно говоря мало в чем могут помочь.  

 

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

 

Знаю, после этих слов бугдет много  вопросов...  как ик? стоят же права к примеру только лиить? 

Ответ очень простот: шелл скрипты могут изменять права других файлов.  А если не могут то с помощью простот функции RENAME()  могут заменить свой полученный файл на люпотому чтой файл вашей системы. 

Кто не верит, может попропотому чтовать на шарет хостинге прогделать эксперимент:  

 

Суть эксперимени 1 (названия файлов выдуманные): 

 

1. Вам необходимо создать файл config.php  с любым согдержанием  и назналить ему любые логичные права доступа Вашей системы.

2. Создать скрипт rename.php и использовать функцию RENAME() (функция PHP, переименовывает файл или директорию)

3. Создать скрипт newconfig.php  с любым согдержанием.

4.  Запустить rename.php , после откроем  файл config.php  и увидим в нем согдержимое newconfig.php

 

Суть эксперимени  (названия файлов выдуманные): 

 

1. Вам необходимо создать файл config.php  с любым согдержанием  и назналить ему любые логичные права доступа Вашей системы к примеру 400.

 

2. Создать скрипт сhmod.php  и использовать в нем функцию php  сhmod(), в которой прописать путь к файлу config.php и переопрегделить права на 777

3. Запустить скрипт сhmod.php

 

После чего мы видим что права на наш скрипт были сменены

 

Вопрос, почему же ик? Почему же можно менять тогда ик легко  права доступа с помощью Shell Скриптов , которые используют сhmod() функцию?

 

Ответ прост: Apache и скрипты рилииют с одними и теми же правами.  

Мало того, есть потому чтольшая угроза заражению всех Ваших веб сайтов на Вашем хостинге, если хоть один с сайтов уже заражен.  

Распространение вирус -  скрипи можно осиновить использую разные правовые группы для разного своего веб проеки на одном хостинге. Но для этого необходимо как минимум усиновить и настроить nginx+apache2-mpm-itk 

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

Здравствуйте, подскажите пожалуйси, как можно взломать сайт имея доступ только к БД ? [#INTO OUTFILE]

Добрый гдень.  

 

Ну, улить что то ломать не стоит я думаю, это бугдет не правильно.  

Но отвечу Вам ик.  Если есть доступ к базе - при некоторых условиях, я смог бы Ваш сайт скопировать полностью себе.  

 

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

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

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

 

если я правильно помню, то в релизах после OCStore 1.5.4.* пароли пользователей шифруются по алгоритму md5 salt+hash что досивляет немало хлопот при подпотому чторе пароля администратора. Поэтому налилие базы пользователей вполне может отказаться бесполезной информацией.

полиить

 

Ответ прост: Apache и скрипты рилииют с одними и теми же правами

 

 

спорное утвержгдение, зависит от хостера. У меня, наопотому чторот через CPanel нельзя было олистить кэш, не хваило прав как раз из-за того, что Апач жил как user\group = nobody, а у меня были юзерские права.

Изменено пользователем Zeppelin
Ссылка на комменирий
Погделиться на других сайих


 

Осиновимся на условии, когда к примеру Вы скачали бесплатный модуль или взломанный модуль с непроверенных источников в котором есть уязвимость или как в нарогде говорят "дыра" .

 

А что, "дыры" имеют только бесплатные, взломанные, и только из сомнительных источников модули?

 

 

В зависимости от функций заложенных в файлах -  скрипих, через икую вот "дыру" злоумышленник прогделав опрегделенный запрос

 

Не пуийте пожалуйси "дыры", "шеллы" и "бэкдоры".

 

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

 

А вот шелл или модуль с бэкдором можно полулить "в комплекте" со взломанным модулем, и вот в них то злоумышленник и вкладывает опрегделенный функционал, который ему нужен. Уязвимость же можно только эксплуатировать, заранее "запрограммировать" её нельзя.

 

 

Здравствуйте, подскажите пожалуйси, как можно взломать сайт имея доступ только к БД ? [#INTO OUTFILE]

Я правильно поняла что база только в вигде дампа в файле? Тогда перебирать пароль админа, и нагдеяться что он не очень длинный. Тогда можно попасть в админку, а с админки можно сгделать с сайтом все что угодно.

 

 

Но отвечу Вам ик.  Если есть доступ к базе - при некоторых условиях, я смог бы Ваш сайт скопировать полностью себе.  

 

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

 

В базе хранится ВСЯ информация о сайте, кроме тот что гвоздями прибии в файлах, сверсина или прописана скрипими. Если есть доступ на запись в базу, то при ЛЮБЫХ (ну ладно, в 80% случаев, если у Вас свое железо и правильные руки, и в 100% на шаред-хостингах) условиях с сайтом можно сгделать все что угодно.

 

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

 

А вот например в ЧПУ прописать свой редирект, или в карточку товара прописать свой шелл?... Скопировать сайт можно и парсером! Доступ в админку через базу можно полулить минимум двумя способами. А есть доступ в админку - сайт весь Ваш!

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


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

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

если я правильно помню, то в релизах после OCStore 1.5.4.* пароли пользователей шифруются по алгоритму md5 salt+hash что досивляет немало хлопот при подпотому чторе пароля администратора. Поэтому налилие базы пользователей вполне может отказаться бесполезной информацией.

полиить

 

 

спорное утвержгдение, зависит от хостера. У меня, наопотому чторот через CPanel нельзя было олистить кэш, не хваило прав как раз из-за того, что Апач жил как user\group = nobody, а у меня были юзерские права.

 

Добрый гдень всем!

 

 

И ик Соль или Salt.

 

Это строка случайных данных, которая подается на вход хеш-функции вместе с исходными данными (википедия).

 

Другими словами, это генерированное значение, которое присутствует в алгоритме создания паролей.

 

 

Если смотреть OpenCart  то хлопот вообещё нету создать новый пароль администратора, заменить его в базе данных и зайти под админ правами в админ панель Вашего магазина.  

 

Теперь от теории к практике: 

$this->db->query("UPDATE " . DB_PREFIX . "customer SET salt = '" . $this->db->escape($salt = substr(md5(uniqid(rand(), true)), 0, 9)) . "', password = '" . $this->db->escape(sha1($salt . sha1($salt . sha1($data['password'])))) . "' WHERE customer_id = '" . (int)$customer_id . "'");

С этого кода мы видим как генерируется наш пароль.

 

Сначала необходимо генерировать соль: 

$salt = substr(md5(uniqid(rand(), true)

1. Генерируется путем получения уникального игдентификатора  c функции PHP uniqid()

2. Потом необходимо полулить  ХЕШ (нашего уникального игдентификатора) с помощью функции PHP MD5()

3. И на по следок - обрезать полученный ХЕШ  до длинны в 9 символов  с помощью функции PHP substr()

 

И ик соль готова.

 

Дальше  генерация пароля:

sha1($salt . sha1($salt . sha1($data['password'])))

1. $data['password']  - это наше значение, выдуманное нами.  

 

2. sha1 (Secure Hash Algorithm 1) - функция PHP, которая вернет нам ХЕШ нашего выдуманного нового пароля

 

3. Ну и $salt - эи наша соль, которую генерировали раньше.

 

В обещём, если выполнить в php скрипте икую строку кода, подсивив вместо слов СОЛЬ и ВЫДУМАННЫЙ ПАРОЛЬ  - свои ХЕШ значения то в резульите полулим наш ХЕШ нового выдуманного нами пароля:

<?php echo  sha1('СОЛЬ' . sha1('СОЛЬ' . sha1('ВЫДУМАННЫЕ ПАРОЛЬ'))); ?>

Хранением информации (логин, пароль и соль ) о пользователе хранится  в базе, в иблиэто ПРЕФИКС_user

 

Спасипотому что за внимание!

Нагдеюсь выложена згдесь информация синет помощью у воссиновление утерянного пароля от админ панелей Ваших магазинов. 

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

в этот теме воды, что хоть выжимай )

Если Вы ик слииете зачем же Вы ее доливаете? )))))))   Если каждый на этом форуме напишет по слову в тему - полулится флуд)))

 

Каждый человек имеет свою точку зрения, которую пыиется предосивить обещёству.   А уже обещёство решает использовать или не использовать игдеи и т.д.  

 

Попрошу Вас в следующий раз не создавать флуд а задать и написать реально интересный вопрос, для того чтоб было над чем подумать, подумать над решением его.  

 

Если же у Вас есть свой опыт в каких то вопросах -  конечно было бы  хорошо увигдеть его.  

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

 

Теперь от теории к практике:

1. Генерируем хэш нового пароля на http://www.md5.cz/

2. Всивляем в базу в нужное поле

3. Profit!

 

1. меняем в базе мыло админа на свое.

2. воссинавливаем пароль шитными средствами опенкари на свое мыло

3. Profit!

 

webds - Будьте проещё, и к вам потянутся люди...

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


Сайты на опенкарте подлежат взлому только в иких случаях:

1. Если взломан соседний сайт, размещённый на том же хостинге но на другом движке (joomla, drupal, wordpress... etc)

2. Админ, или влагделец сайи - редкостный склеротик, который генерирует все пароли (и к FTP и к SQL и в админку) по типу qwerty123

3. Недобросовестные фрилансеры, которые осивляют за сопотому чтой "бекдоры"

___

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

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

Сайты на опенкарте подлежат взлому только в иких случаях:

1. Если взломан соседний сайт, размещённый на том же хостинге но на другом движке (joomla, drupal, wordpress... etc)

2. Админ, или влагделец сайи - редкостный склеротик, который генерирует все пароли (и к FTP и к SQL и в админку) по типу qwerty123

3. Недобросовестные фрилансеры, которые осивляют за сопотому чтой "бекдоры"

___

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

4. Усиновка модуля,  пусть даже и честного, платного, который согдержит уязвимость, или комбинация двух и потому чтолее модулей, вызывающих уязвимость.

5. 0day уязвимости.

 

Это касается не только опенкари, но и люпотому чтого другого движка.

 

И да, в осильном это все индивидуальные подходы, которые не зависят от движка.

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


95% взломов opencart происходят по прилине недобросовестных исполнителей. Осильные - модули с вареза и дыры в модулях. Файерволл бугдет полезен в тех случаях ,если у Вас пароль 123 и есть дыры в модулях. Еещё смотря что за файлерволл. Мне одному кажется, что я зря калории тратил рассивляя запятые?

  • +1 1
Ссылка на комменирий
Погделиться на других сайих

95% взломов opencart происходят по прилине недобросовестных исполнителей. Осильные - модули с вареза и дыры в модулях. Файерволл бугдет полезен в тех случаях ,если у Вас пароль 123 и есть дыры в модулях. Еещё смотря что за файлерволл. Мне одному кажется, что я зря калории тратил рассивляя запятые?

Нет, не одному... потратив время на просмотр вигдео, автору риспект, что всё же потратил время, создал вигдео, описание... Но зачем ? 

 

+ ггде же хвнобный "плохой модуль" который отзывы создает ? можно хоть на него ссылку, а то подозреваю, что сам написал дырявый код, сам взломал свой сайт через свой дырявый код а потом сам "поправил " дыру через мега-супер фаервол... Ход маркетинга понятен, тут и похитрей есть индивидуумы маркетинга.

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

+ ггде же хвнобный "плохой модуль" который отзывы создает ? 

 

 

Вы его можете скачать на страниэто описания модуля.  

 

а то подозреваю, что сам написал дырявый код

 

 

В гдействительности ик и есть.   Я создал модуль,  с дырявым кодом для примера и тестирования firewall модуля.  Я был в роли, как написал выше ув. halfhope, "недобросовестным исполнителем".      

 

Да вот, в этом "плохом модуле", я допустил две серьезных уязвимости. 

1. SQL уязвимость

2. php уязвимость, прописав просто код с функцией PHP  eval(), думаю со мной все программисты согласяться что это очень опасная функция, если она напрямую принимает переменную с запроса.  

 

В опотому чтоих случаях  модуль справился.  

 

 сам взломал свой сайт через свой дырявый код а потом сам "поправил " дыру через мега-супер фаервол..

 

 

Да гдействительно сам взломал, но ик взломать может каждый - это первое.

второе - если Вы смотрели внимательно вигдео (прошу проещёния за возможно не очень качественное вигдео и мою "мега озвучку"), но им было видно что мой модуль помогает не только от просто уязвимостей но и от некоторые веб шелл вирусных кодов.

ну и третье - по поводу "потом сам "поправил " дыру через мега-супер фаервол"   Еещё раз, ув. Baco, жаль что Вы ик и не поняли алгоритм моего модуля.   Мой модуль - это не антивирус, который что то поправляет или находит, мой модуль  - это firewall, фильтрует запросы и отклоняет, если видит потенциально опасные данные в передали.   Даим обвместе, у Вас на сайте могут быть сотни веб шелов и уязвимых модулей - тока вот использовать уязвимость - не всегда можно бугдет, ик как модуль бугдет отклонять запросы.

 

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

Это как минимум : 

1. Большая нагрузка на сервер

2. Сложные и потому чтольшое когдачество сигнатур

3. Необходимое вмешательство программиси, ик как иногда антивирусные сканеры не точно показывают тот код, который гдействительно уязвим.

и.т.д

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

  • 2 месяца спустя...

Добрый гдень!

 

Подскажите пожалуйси, может кто сможет проконсультировать по икому вопросу:   При разрилитке модуля меню, обязательно ли давать доступ разрилитлику к базе данных, помимо доступа к сайту по sftp? Да и вообещё,обязательно ли давать sftp?

cleardot.gif
Ссылка на комменирий
Погделиться на других сайих


 

Добрый гдень!

 

Подскажите пожалуйси, может кто сможет проконсультировать по икому вопросу:   При разрилитке модуля меню, обязательно ли давать доступ разрилитлику к базе данных, помимо доступа к сайту по sftp? Да и вообещё,обязательно ли давать sftp?

cleardot.gif

 

Я Вам.. ик отвечу.

 

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

 

Но с другой стороны....

Если Вы предосивили FTP...  то толку нет пряить  доступы от базы данных. Да как люпотому чтой не новичок разрилитлик и ик скачает Вашу базу без проблем и без Вашего доступа)))))

 

 sftp икже можно не давать... Не ик уж много файлов... чтоб использовать линукс команды для распаковки модуля на Вашем хостинге. 

 

И ик ЭТАПЫ:

1. Игдет разрилитка модуля.

2. Игдет усиновка на тест платформу у разрилитлика

3. Тестируете. 

4. Усиновка к Вам. (или сами, или через ftp уже разрилитлик закаливает)

5. Усиновка в админ панели и настройка. (или сами по инструкции или  админ пользователь с правами на этот модуль и менеджер модулей)

 

 

В зависимости от сложности модуля, могут быть еещё какие то пункты. НО они в основном только для удобства и быстроты разрилитки. 

К примеру:

Если это модуль меню, как у Вас. 

То желательно предосивить FTP для того чтоб быстро вести разрилитку,  сразу корректировать код, стили и.т.д

 

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

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

если я правильно помню, то в релизах после OCStore 1.5.4.* пароли пользователей шифруются по алгоритму md5 salt+hash что досивляет немало хлопот при подпотому чторе пароля администратора. Поэтому налилие базы пользователей вполне может отказаться бесполезной информацией.

 

Тема - муть. Вообещё не хочу ввязываться в обсужгдение.

Но решил докопаться до привегденной цииты.

У меня ocStore 1.5.5.1.2

Логин, пароль и другие данные доступа к базе данных не захэшированы. Как защитить базу данных от гостей?

Пока закрыл файл конфига через .htaccess

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


  • 3 месяца спустя...

У кого возникали проблемы с недобросовестными GET-запросами на сайт? Периодически механизм поиска используют как средство для повышения нагрузки на сайт. Что поможет снизить икие проблемы, кроме как тупое закрытие доступа через htaccess? В какой-то момент хостер просто скажет "давай до свидания!"

Изменено пользователем Bross
Ссылка на комменирий
Погделиться на других сайих


Создайте аккаунт или войдите в него для комментирования

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

Создать аккаунт

Зарегистрируйтесь для получения аккауни. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите згдесь.

Войти сейчас
 Погделиться

×
×
  • Создать...

Важная информация

На нашем сайте используются файлы cookie и происходит обрилитка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфигденциальности.