Офис НП AMWAY в Ярославле
Офис Амвей в Ярославле
На карте Офис AMWAY в ЯрославлеПрием и выдача заказов, презентация продукции Амвей, мастер–классы, вопросы по бизнесу Amway:
Адрес: улица Валентины Терешковой, дом 1 (Вход со двора)
Телефон: +7 (920) 112-00-91
Email: matyxho@mail.ru
Сайт: https://www.amway.ru/user/lebedem
Визитка: http://yar.meweb.ru
Иерархия статей
Статьи » Безопасность » Введение. Основы безопасности сайтов
Сниппет
В последнее время наблюдается всплеск взломов, хакерских атак и прочей подобной гадости. В связи с этим я и решил немного изучить данную тему.
Введение. Основы безопасности сайтов
Опубликовал  Pisatel Pisatel Добавлено  25-02-2013 16:01 25 Февраль 2013 16:01:48 3730  Прочтений 3730 Прочтений
 printer
Сам я не очень этим всем интересовался до последнего времени. Нет, конечно у меня есть некоторое представление о защите: фильтрация всего, что приходит извне, мониторинг( время от времени) существующих на сервере файлов, сравнение их даты последнего редактирования и прочие мелкие штучки. К тому же на сайте стоит скрипт, контролирующий, в некотором роде, безопасность. Однако, после прочтения мной нескольких статей, я понял, что все эти средства защиты малоэффективны. Они способны, разве что, отпугнуть школоло, которому нехрен делать, и он просто решил позабавиться. А вот защитить свой ресурс от настоящего профессионала- это весьма и весьма проблематично, я бы даже сказал- почти нереально.

Распространенные заблуждения



 — Многие думают, что если их сайт сделан но популярном движке, которым пользуются тысячи- он защищен. Ну как же, ведь в команде по созданию этой CMS работают профессионалы, уж они-то точно все знают и все сделают для обеспечения безопасности! С одной стороны- все верно. Но с другой... Не забываем, что это- OpenSource, то есть двиг доступен всем, все знают( или могут узнать, если захотят) его структуру, следовательно- могут найти и уязвимость. Существуют целые группы хакеров, которые занимаются поиском уязвимостей в определенных пабличных CMS. Именно поэтому важно постоянно следить за обновлениями твоей CMS на сайте разработчиков. Ведь зачастую мы ставим двиг, нас все устраивает, и мы спокойно начинаем заниматься развитием проекта. А в это время злые дядьки уже нашли дырко в твоей CMS и ищут в паутине сайты, дабы заразить их. Конечно, если это не заброшенная CMS, разработчики тут же отреагируют и выпустят заплатку для уязвимого места, но ты же об этом не узнаешь, тебя же все устраивает! Именно поэтому так важно следить за обновлениями на сайте официального разработчика.

 — Проверка времени изменения файлов. Оказывается, это тоже совсем не вариант! Данный метод пассивной защиты актуален лишь для начинающих хакеров или школьников. Грамотные взломщики либо вообще не изменят дату, либо, отслеживая твои посещения редактора, изменят файл примерно в то же время, что и ты. Вот что примерно об этом пишут:

Цитата [ Отметить все ]
touch можно делать кучей способов:

Код: PHP
//php:

touch(FILE_NAME, $time, $time)

//sh:

touch -t [[СС]YY] MMDDhhmm[.SS] FILE_NAME




perl, gcc, python. если же все это не работает, то искать (ждать) файл, который только что изменился и внести туда мини шел, но как нить очень хитро, чтобы при взгляде админа на изменения у него не возникло подозрений, т.е. не просто

Код: PHP
eval($_REQUEST['cmd'])




, а что нить типа

Код: PHP
$varПоЛогикеПохожаяНаTуЧтоЕстьВИсходнике=$_REQUEST['ParamПоЛогикеПохожийНаТоЧтоЕстьВИсходнике'];

...

...

// куча кода

...

$someVar=preg_replace("/http[s]?(.*)/e", $varПоЛогикеПохожаяНаТуЧтоЕстьВИсходнике, $НеПустаяСтроковаяПеременнаяИзИсходника);




т.е. смысл в том, чтобы вставленные строки для всех выглядели максимально родными для исходника.


Ну как, ты все еще продолжаешь ориентироваться на время изменения файла? Тогда мы идем к вам!:-)

 — Еще одно ошибочное представление- это то, что файлы шелла имеют нестандартные названия, например: wzxp.php, gwd.php и тому подобное. Никак нетс, Господа СайтоСтроители! Наоборот, шеллы имеют вполне приличные названия файлов, чаще всего близко схожие с существующими, а в последнее время- шеллы "живут" прямо в твоих файлах, и код их выглядит весьма безобидно на первый взгляд: нет никакой кодировки в base64 ( на нее будет ругаться любой антивирь- палево!) и так далее.

 — "У меня нет регистрации на сайте, я не получаю данные извне!" И здесь ты снова ошибаешься. Ведь ты же Админ, верно? А это значит, что тебя можно поймать и тихонько руководить твоими действиями... Вот небольшая цитата, пример, так сказать, дабы убедить тебя, что я не выдумываю:

Цитата [ Отметить все ]
Внедрение яваскрипта.

Большинство приложений построено

по принципу "максимально фильтруем user input, записываем чистые данные в БД, безгранично доверяем контенту из БД". Имея прямой доступ к БД, можно записать туда js код, миновав фильтрацию на уровне приложения. Редкие приложения фильтруют контент из БД, но даже в них можно найти лазейку - защита от инсайдера слабее внешней.

Что даёт внедрение js кода?

-возможность получить куки администратора, если они установлены без флажка httponly

-возможность выполнить в админке произвольные действия с правами администратора

Общие рекомендации

по внедрению закладки:

-если есть возможность, нужно вписаться во что-

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

-идеально, если есть возможность записаться прямо в существующий скрипт.

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

заполнении javascript переменных:

adminka.php

Код: JAVASCRIPT
//...

<script>

a = "100000000000";

thousands_separator = "<? =$b ?>";

// Переменная $b берётся из бд? То, что нужно!

do_something(a,b);




Методика похожа на обычный sql injection - разрываем кавычки и добавляем свой код, экранируя лишнее комментарием // -желательно вписаться во что-то, что нельзя отредактировать средствами движка. Если возможности вписаться в нередактируемое поле нет - заблокируйте или поставьте свой обработчик на элемент, который его редактирует. Абсолютно любой элемент на странице можно адресовать комбинацией операторов getElementByID('айди'),

getElementsByTagName('input')[3],

getElementsByName("name")[4] и

getElementsByClassName("class")[1]


Там еще очень многабукафф, и это всего лишь один из примеров, один из способов...

Как максимально обезопасить свой сайт?



Думаю, примерно такой вопрос сейчас у тебя в голове, уважаемый читатель. Но ответить на него со стопроцентной гарантией не смогу не то, что я, но и профессионал по безопасности. Это целый комплекс мер и работ. На некоторых аспектах я попробую остановиться в следующих публикациях, если сам не подвергнусь уничтожению за разглашение секретной информации. Всех благ!
Понравилась статья?
Метки для данной статьи
Похожие статьи
Поделиться:   
Последние активные темы форума
  Темы Просмотров Ответов Последние сообщения
folder Вопрос по переделке bb-кода
PHP, MySQL
22330 5 Pisatel
26. мая 2017
folder Вопросы по Ajax форме обратной связи
CMS PHP Fusion
68547 48 Ditrin
19. февраля 2017
folder BBCode YouTube Video Colorbox mod
CMS PHP Fusion
15357 2 Pisatel
10. декабря 2016
folder Как лучше создать собственную страницу?
CMS PHP Fusion
17888 17 Pisatel
11. мая 2016
folder Небольшие вопросы по скриптам магазина и катало...
PHP, MySQL
144806 80 Pisatel
11. января 2016
folder BBCode Code mod
CMS PHP Fusion
14416 0 Pisatel
31. августа 2015
folder Ajax Like Dislike Article Panel
CMS PHP Fusion
22551 16 Pisatel
07. июля 2015
folder Хлебные крошки / BreadCrumbs SEO Panel
CMS PHP Fusion
26240 17 Pisatel
04. июля 2015
folder Abbr Description BBCode
CMS PHP Fusion
7665 0 Pisatel
15. июня 2015
folder Плагин Email рассылки Mail To All by Pisatel
CMS PHP Fusion
36989 32 Pisatel
26. апреля 2015
folder Подозрительный трафик и прочие страшилки
Всякая хрень
11794 2 Ditrin
23. апреля 2015
folder Мод Newsletter - рассылка писем пользователям с...
CMS PHP Fusion
31034 13 Pisatel
10. апреля 2015
folder Мод отправки писем PHPMailer для PHP-Fusion
CMS PHP Fusion
128306 113 Ditrin
06. апреля 2015
folder Появление неизвестного файла subscriptions.php
CMS PHP Fusion
8843 2 Pisatel
06. апреля 2015
folder Autoban on IP
CMS PHP Fusion
23180 13 Pisatel
03. апреля 2015