Самодостатній Cross-Site Scripting
20:33 29.09.2006Про Cross-Site Scripting я згадував чимало на своєму сайті - це взагалі одна із головних тем, які я піднімаю. І до цього часу мова йшла лише про класичний XSS, назвемо його так (причому класичний Cross-Site Scripting в свою чергу ділиться на декілька різновидів), щоб відрізняти від нового різновида XSS. Про який я зараз вам розповім, який по суті є лише ще одним підкласом XSS уразливостей. Мова йде про самодостатній XSS (self-contained XSS).
Самодостатній Cross-Site Scripting - це зовсім інша форма XSS уразливостей, яка має свої обмеження з одного боку, а з іншого - її набагато важче виявити і відфільтрувати (на даний час). Тому що старі методи, які фільтрують класичний XSS, вже не діють.
Як повідомив pdp, 22.09.2006, в своій статті Self-contained XSS Attacks, він виявив дану уразливість - нову форму XSS атак. На що потім в коментарях до статті, RSnake написав, що в нього даний вектор атаки XSS вже згадувався 2 роки тому (і приклад самодостатньої XSS атаки в нього на сайті приводиться, якщо уважно прочитати відповідні матеріали). Тобто це не є новим вектором атаки. Але справа не в цьому, бо все нове - це добре забуте старе. Зараз як раз з новими силами і більш доступно pdp, а тепер і я, розповідаємо про даний різновид XSS атак.
Для впровадження атаки з самодостатнім XSS використовується протокол data.
Даний ява скрипт код:
<script>alert("XSS")</script>
Має наступний вигляд:
data:text/html;base64,PHNjcmlwdD4KYWxlcnQoIlhTUyIpOwo8L3NjcmlwdD4=
Для перетворення довільного коду (для XSS) в потрібний формат для протоколу data потрібен перекодувач в Base64 формат даних (з відповідним заголовком). Для цього я пропоную для вас Онлайновий генератор самодостатніх XSS. Який і займеться генерацією потрібного XSS кода. В Генераторі XSS в формі ви можете сгенерувати html код, який можна одразу ж виконати (для перевірки).
Слід додати, що сам pdp, автор статті (а також RSnake в коментярях), заявляють, що для викрадення кукісів даний метод не придатний. Що тільки для інших векторів атаки можна застосовувати цей мотод самодостатніх XSS. На що я не можу з ними погодитися. Я провів необхідні тестування, і alert(document.cookie) працює добре. Тому при правильному підході, все буде працювати як потрібно (потрібно не просто в URL вписати, а розмістити в лінці в атибуті href). Тому даний вектор атаки є доволі небезпечним.
Лише потрібно зазначити, що його використання обмежене. Ця уразливість може бути експлуатована в Mozilla, Firefox, Opera і можливо інших браузерах. Internet Explorer 6 і 7 не дозволить зробити атаку даного типу (бо не підтримує протокол data).
P.S.
До речі, окрім статті автора, Self-contained XSS Attacks (на англійскій), також можете прочитати переклад цієї статті на секлабі Самодостаточные XSS атаки.
Вівторок, 12:52 06.02.2007
как это выглядит в документе??? : сколько не пробовал не выполняется..
напиши мне на почту или оставь асю нормально пообщпемся
Вівторок, 16:44 06.02.2007
halkfild, напишу тобі обов’язково (як раз відповім на твого листа найближчим часом). А ася моя в інтернеті доступна, на моєму домашньому сайті, а також можна пошуком по ніку знайти мою асю.
Щодо Самодостатнього Cross-Site Scripting, то ти спробуй мій Генератор XSS. У випадку, якщо не працюють приклади, то зверни увагу на те, що для виконання потрібен відповідний браузер (Mozilla, Firefox, Opera, в IE не працює), про що я писав в статті.
П'ятниця, 16:04 09.10.2009
На счет кражи кукисов не согласен.
Одного алерта не достаточно, надо как то передать данные кукисов.
А вот загрузить троян или експлоит на базе офисного документа, это да
Неділя, 11:33 11.10.2009
Prodev, a AJAX для чого?
Неділя, 23:53 25.10.2009
GS
Так, і AJAX можна використовувати при XSS-атаках, особливо при просунутих XSS-атаках .
Понеділок, 00:18 26.10.2009
Prodev
Ты можешь использовать самодостаточный XSS (как и другие типы XSS, такие как активный и пассивный) и для кражи кукисов, и для других атак.
Естественно при атаке нужно передать данные кукисов - и для этого нужно использовать атакующий код. В данном случае - это код для демонстрации уязвимости (для чего наиболее часто используется alert). Это PoC и в нём используется код для демонстрации (не атакующий), а если использовать код для кражи кукисов - то это уже будет эксплоит (с атакующим кодом).
Эти варианты атак также возможны при использовании XSS уязвимостей .