1
  1. Этот сайт использует файлы cookie. Продолжая пользоваться данным сайтом, Вы соглашаетесь на использование нами Ваших файлов cookie. Узнать больше.
Приветствуем вас,Гость, на форуме IFUD.WS. Обязательно рекомендуется к прочтению правила форума http://ifud.ws/threads/obnovleno-pravila-foruma.7759

Защита сайта от взлома

Тема в разделе "Наши статьи", создана пользователем ResH, 9 мар 2015.

  1. TopicStarter Overlay
    ResH

    ResH Команда форума

    Регистрация:
    26 июл 2012
    Сообщения:
    1.678
    Симпатии:
    2.271
    В этой статье я хочу рассказать начинающим вебмастерам про методы защиты собственного сайте
    Самый популярный метод взлома заключается в том что злоумышленник используя баги заливает шелл на сервер. Я этой теме я не буду объяснять как найти и закрыть баги. Такие дыры были есть и будут всегда во всех движках и в скриптах. В данной теме мы будем рассматривать защиту от шелла.

    Метод 1: .htaccess

    Создаем файл .htaccess в корневой папке нашего сайт. Заранее приготавливаем список файлов с расширением .php которые присутствуют в движке нашего сайта. Мы рассматриваем именно php так как 90% шеллов в расш. php. Допустим в нашем движке есть 3 файла с расщ. php
    login.php
    admin.php
    register.php


    Открываем файл .htaccess и добавляем туда такой код

    Код:
    <Filesmatch ".(php)$">
    order deny,allow
    deny from all
    </Filesmatch>
    <Filesmatch "^login.php">
    order allow,deny
    allow from all
    </Filesmatch>
    <Filesmatch "^admin.php">
    order allow,deny
    allow from all
    </Filesmatch>
    <Filesmatch "^register.php">
    order allow,deny
    allow from all
    </Filesmatch>
    Как вы видите мы с помощи команды deny from all на уровне апача запрещаем запуск всех файлов с расш. .php кроме login.php admin.php register.php
    Т.е даже если злоумышленник зальёт шелл на сервер он не сможет его запустить

    Метод 2: php.ini

    Иногда злоумышленник сможет использовать для заливки такую безобидную команду как php preg_match
    Советую запретить такие команды как eval, base64_encode, exec
    Для этого мы открываем файл php.ini , ищем там строку disable_functions= и запрещаем эти команды
    disable_functions="eval,base64_encode,popen,exec,system,passthru,proc _open,shell_exec"
    Я там еще добавил пару команд
    Если на вашем сайте не используется функц. отправки мыло то я еще и советовал бы запретить команду mail

    Метод 3: Please login or register to view links

    Есть еще отличный метод которым я до сих пор пользуюсь. На сайте Please login or register to view links вы сможете скачать бесплатно готовый скрипт который при установке снимает мд5 скрин и список файлов на сервере. Т.е скрипт уведомляет если на сервере изменился размер какого нибудь файла или был добавлен или удален файл. Т.е если злоумышленник сможет залить шелл или инжектировать его в какой нибудь файл который лежал у вас скрипт сразу отправит письмо вам о том что на сервере что то не то. Размер файла или количество файлов изменились. Данные еще можно получить с помощи ручного сканирование

    [​IMG]

    Как видите скрипт предупреждает что в папке setting был изменен файл ***.php
    Внизу еще и показывает IP злоумышленника который изменил его

    А если все гуд то

    [​IMG]

    На сайте вы сможете найти подробную информацию про установку
    Скажу от себя лишь то что скриптом доволен и аналога пока что не нашел
    Конечно я еще и использую AIDE под люникс , но данный скрипт отлично подходит тем у кого нету рут доступа а просто купил шаред хостинг


    Метод 4: mod_security

    Данный метод подходит тем кто юзает люникс
    Этот уже готовый модуль защищает нас от взлома 99%
    Работа данного модуля заключается в том чтоб имею баги в движке он запрещает ими пользоваться злоумышленнику
    Он дает защиту от таких известных и до сих пор актуальных багов как xss, sql inj, lfi и т.д
    Пример: Если на вашем сайте есть sql inj то с помощи простой команды Please login or register to view links можно удалить всю информацию пользователей (лог:пасс)
    Мануал по установке мы сможете найти в интернет без проблем

    И не забываем: Все методы защиты идеальны, не идеален только человек :wink:
     
    • Like Like x 8
    Последнее редактирование: 9 мар 2015
    Метки:
  2. ponchic

    ponchic юзверь

    Регистрация:
    15 дек 2013
    Сообщения:
    407
    Симпатии:
    276
    Про 1 метод через аштиаксесс, а если допустим в этой папке www лежат эти файлы, а если создать папку и в неё залить шелл с разрешённым названием, то он запустится?
     
  3. TopicStarter Overlay
    ResH

    ResH Команда форума

    Регистрация:
    26 июл 2012
    Сообщения:
    1.678
    Симпатии:
    2.271
    если ты имеешь ввиду что взломщик сможет ли создать новую папку и залить туда шелл ?
    то ответ нет, так как для того чтоб взломщик создал папку ему нужно запустит шелл, а мы этого как видишь запретили
    если данный файл лежит в корневой папке то он запрещает и файлы которые лежат в другой папке
     
    • Like Like x 1
  4. AngryBSOD

    AngryBSOD

    Регистрация:
    6 мар 2015
    Сообщения:
    165
    Симпатии:
    140
    1) Ты серьезно? Если злоумышленник смог залить shell.php, то что ему мешает залить .htaccess?
    2) disable_functions="eval,base64_encode,popen,exec,system,passthru,proc _open,shell_exec" Что за бред? (+ можно самому изменить php.ini из шелла (Если будут права))
    А если сам скрипт юзает эти функции?
    3) Ну я тут даже не знаю, что сказать
    4) mod_security не защищает от всего этого. Он служит для скрытия ошибок и имен таблиц
     
    • Like Like x 2
  5. TopicStarter Overlay
    ResH

    ResH Команда форума

    Регистрация:
    26 июл 2012
    Сообщения:
    1.678
    Симпатии:
    2.271
    Для этого нужно поставить права на .htaccess 444. Да и вообще если ты не понял все эти методы страхуют друг-друга
    Если скрипты юзают эти команды значит нужно внимательно проверить права на данные файлы в которых присутствуют данные команды
    А что ты понимаешь под словом защита ? Разве скрывают ошибку (кроме фильтра символом) не для того чтоб защитить от инъекции ? Из за этого и советуют в скриптах заменять error_reporting (E_ALL) на error_reporting (0).
    mod_security не тупа для того чтоб скрыть ошибки . А то он не унифицировал бы траф , не убирал бы слэши, не заменял бы пустые байты пробелами, не декодировал бы урл, не анализировал бы гет и пост запросы

    Ну если у тебя есть более рабочий и актуальный метод то мы будем рады выслушать тебя
     
  6. K_NoW

    K_NoW HackMe Please

    Регистрация:
    16 мар 2014
    Сообщения:
    464
    Симпатии:
    222
    Про антишелл скрипт, сам его юзаю давно, чёткая вещь.
     

Поделиться этой страницей

Загрузка...