2 мин.

Моя любимая демонстрация атаки межсайтового скриптинга

Моя любимая демонстрация атаки межсайтового скриптинга

Эта чудесная история произошла несколько лет назад. Если вы не читали об этом раньше, сейчас мы разложим все по полочкам. А если вы уже знаете об этом, можете поделиться историей с друзьями. Я думаю, что это одновременно забавная и действительно отличная демонстрация уязвимостей межсайтового скриптинга.

В первую очередь, разберёмся в терминах и дадим определение [XSS][xss]: [xss]: https://ru.wikipedia.org/wiki/%D0%9C%D0%B5%D0%B6%D1%81%D0%B0%D0%B9%D1%82%D0%BE%D0%B2%D1%8B%D0%B9_%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82%D0%B8%D0%BD%D0%B3

XSS (англ. Cross-Site Scripting — «межсайтовый скриптинг») — тип атаки на веб-системы, заключающийся во внедрении в выдаваемую веб-системой страницу вредоносного кода (который будет выполнен на компьютере пользователя при открытии им этой страницы) и взаимодействии этого кода с веб-сервером злоумышленника. Является разновидностью атаки «внедрение кода».

Если это не понятно, то давайте перейдём к примеру. Это приложение TweetDeck. Это должно прояснить ситуацию.

{{< tweet 476764918763749376 >}}

TweetDeck --- это стороннее приложение (клиент) для Twitter. Он позволяет использовать несколько аккаунтов одновременно, разделять экран на несколько колонок и прочие функции для тех кто много сидит в Twitter. В итоге этот клиент был куплен компанией Twitter за $40 миллионов. После покупки TweetDeck смог читать данные напрямую от Twitter'a. И в тоже время после переключения на "сырые" данные появилась уязвимость, так как они обрабатывали приходящие данные, а сразу их показывали конечному пользователю. Таким образом код, который находился в твите мог выполняться на стороне клиента. 😐

Код твита

Рассмотрим буквально по буквам что представлял из себя твит.

<script class="xss">

Это код открытия script элемента, с классом "xss". Это обыкновенный HTML тег, который выполнится браузером.

$(".xss");

Это уже JavaScript код, использующий библиотеку jQuery.

Это пока оставлю, так как статься в основном была для того чтоб проверить возможности и все. Ссылки на оригинал находятся под шапкой слева (в белой полосе) Если что, пишите в комментарии.


https://dev.to/ben/my-all-time-favorite-demonstration-of-a-cross-site-scripting-attack


https://github.com/grishy/blog/blob/hugo/content/post/my-all-time-favorite-demonstration-of-a-cross-site-scripting-attack.md