Эта статья участвовала в "Проект «Звезда раскопок»”, чтобы выиграть творческий подарочный пакет и бросить вызов творческим поощрениям.
Предисловие: Привет всем, я дондун акридин. Два дня назад я получил уведомление от отдела безопасности: уязвимость атаки XSS высокого риска.
Наш отдел сначала определяет источник риска и предоставляет решения. Персональная часть была решена мной, а чрезвычайное исправление прошло вживую.
Первый: так что же такое XSS-атака?
Межсайтовый скриптинг (Cross Site Scripting) часто сокращают до CSS, но его можно спутать с каскадными таблицами стилей (CSS). Поэтому некоторые люди сокращают межсайтовый скриптинг до XSS. Злоумышленники вставляют вредоносный html-код на веб-страницу, и когда пользователь просматривает страницу, будет выполняться html-код, встроенный в сеть, для достижения специальной цели злоумышленника. В основном это относится к самостоятельному созданию веб-страниц с межсайтовыми уязвимостями XSS или поиску веб-страниц с межсайтовыми уязвимостями, отличными от нецелевых машин. XSS — самый распространенный метод атаки в веб-безопасности, и в последние годы он часто занимает первое место в списке уязвимостей веб-безопасности.
Просто глядя на это определение, многие студенты не должны понимать, что оно означает.Далее я смоделирую XSS-атаку, и студенты должны знать, что происходит. Прежде чем моделировать XSS-атаки, давайте взглянем на классификацию XSS-атак.
Второе: какие существуют типы XSS-атак?
① Отраженная XSS-атака (непостоянная XSS-атака)
② XSS-атаки типа хранилища (длительные XSS-атаки)
3DOM на основе типа XSS атака
Третий: Далее мы будем моделировать эти типы XSS-атак.
Первый тип: отраженная XSS-атака (непостоянная XSS-атака).
Отраженные XSS-атаки — это, как правило, злоумышленники, использующие определенные методы, чтобы побудить пользователей посетить URL-адрес, содержащий вредоносный код.Когда жертва нажимает на эти специально разработанные ссылки, вредоносный код будет выполняться непосредственно в браузере на хосте жертвы. Этот тип атаки XSS обычно появляется в строке поиска веб-сайта, порте входа пользователя и т. Д. И часто используется для кражи файлов cookie клиента или проведения фишингового обмана.
Давайте посмотрим на пример:
Это обычное событие клика, когда пользователь нажимает, выполняется js-скрипт и выскакивает предупреждение.
Вы скажете, что это значит, что, если бы этот сценарий был таким?
Когда браузер выполняет этот сценарий, он крадет информацию о файлах cookie пользователя и отправляет ее на указанный сервер. Как вы думаете, что он будет делать дальше?
Второй тип: хранимая XSS-атака (постоянная XSS-атака)
Загружается атакующий или хранит вредоносную код на уязвимом сервере заранее, а вредоносный код будет выполнен до тех пор, пока жертва просматривает страницу, содержащую вредоносный код. Это означает, что до тех пор, пока посетитель, который посещает эту страницу, можно выполнить этот вредоносный скрипт, поэтому вред сохраненной атаки XSS будет еще больше. Такие атаки обычно появляются во взаимодействии сообщений сайта, комментариев, журналов блога и т. Д., И вредоносные сценарии хранятся в базе данных клиента или сервера.
Добавление, удаление, изменение и проверка очень распространены в системах веб-управления.Мы обнаружили новую страницу функций, в которой в качестве примера используется поле ввода форматированного текста.Введите следующую инструкцию, нажмите «Сохранить», а затем перейдите к просмотру деталей.Что как вы думаете, произойдет?
Правильно, если у вас есть одноклассник по фронтенду, H это метка браузера, так что сервер вернется на фронтенд.При рендеринге браузера вторая строка будет рендерится как тег H1, она будет произошли следующие эффекты, была добавлена вторая строка текста.
Здесь я просто ввел обычный текст, а с развитием Интернета в последние годы появилось много мультимедийных тегов h5, а что если я их использую? Для учащихся, которым непонятно, вы можете открыть веб-сайт W3cschool, чтобы просмотреть:
Как хакеры атакуют нас? Хакер сам напишет несколько сценариев, чтобы получить конфиденциальную информацию о наших файлах cookie и т. д., а затем отправит ее на свой собственный сервер. Когда он получит нашу информацию, он сможет обойти внешний интерфейс и напрямую настроить внутренний интерфейс, например, Интерфейс вывода, Подумайте, как это страшно! ! !
Когда мы нажимаем ОК, и был черный человек, ха-ха-ха, поздравляю, у вас есть все деньги на банковской карте забрали хакеров. Это так, как хакеры добились успеха, он все еще насмешивает.
Затем мы используем мультимедийный тег и этот скрипт для атаки на наш настоящий веб-сайт.
Не забудьте добавить // перед адресом, чтобы указать охват, как показано на рисунке:
Когда мы нажимаем «Сохранить», переходим на страницу сведений.
О, сцена веб-сайта только что была запущена в нашей системе веб-управления. Нажмите «ОК», и маленький черный человечек снова насмехается над вами.
Этот сценарий успешно работает в нашей системе управления и получает нашу конфиденциальную информацию, поэтому мы можем напрямую обойти внешний интерфейс и напрямую отказаться от внутреннего интерфейса вывода средств с банковской карты. Кроме того, такие скрипты хранятся на сервере, а также в некоторых публичных местах, сообщениях веб-сайтов, комментариях, журналах блогов и других интерактивных местах, поэтому вред от хранимых XSS-атак будет больше.
Третий тип: XSS-атака на основе DOM.
Скрипты на стороне клиента могут динамически проверять и изменять содержимое страницы, не полагаясь на данные на стороне сервера. Например, если клиент извлекает данные из URL-адреса и выполняет их локально, если данные, введенные пользователем на клиенте, содержат вредоносные сценарии JavaScript, которые не отфильтрованы или не очищены должным образом, тогда приложение может быть уязвимо для атаки XSS на основе DOM. .
Давайте посмотрим на пример
Этот код означает, что после нажатия кнопки «Отправить» содержимое поля ввода отображается на странице. Эффект показан на следующих двух рисунках.
①Введите содержимое в поле ввода
②Нажмите OK, содержимое поля ввода будет отображено на странице.
Так как же нам ввести содержимое не обычного текста, а вредоносного скрипта?
Правильно, когда вредоносный скрипт выводится на страницу, он не обрабатывается как обычный текст, а выполняется как скрипт.