Firefox отменил данный запрос!
Вот такое сообщение об ошибке мне показал сегодня FF 3.5:
![]() |
Очень не люблю когда программа за меня решает что мне делать. Особенно издевательски смотрится кнопка «Попробовать снова». Зачем мне на неё жать? Firefox может передумать?
А на какой порт он так ругнулся, если не секрет?
Комментарий для kalvado.livejournal.com:
ну на 23й порт 100% ругается :)
я так понял что и на другие обычно занятые другими службами будет ругаться.
http://www.mozilla.org/projects/netlib/PortBanning.html
Комментарий для kalvado.livejournal.com:
Не помню. Какой-то 683-й что ли.
Комментарий для splurov.livejournal.com:
Да, я видел, спасибо!
Комментарий для kalvado.livejournal.com:
636, вспомнил!
Вполне нормальная логика — защита пользователей. А кому сильно нужно просто пойдут и поправят дефолтные настройки ФФ в about:config.
Комментарий для nikelin.livejournal.com:
А кнопочка «Повторить» нужна в случае, если вы эти настройки таки поправили.
Комментарий для nikelin.livejournal.com:
Защита пользователей от чего, если уж на то пошло?
Комментарий для Евгения Степанищева:
Защита от отправки данных внутри локальной сети пользователя, например, по ссылке выше: «A simple exploit of this hole allows an attacker to send forged unsigned mail through a mail server behind your firewall»
Файервол и вообще различные сервисы сильнее защищены от внешних соединений, но внутренним адресам делают послабления.
Комментарий для maxim-zotov.livejournal.com:
Звучит как фантастика. HTTP и SMTP сильно отличаются, я не представляю как можно из браузер отослать почту без почтового клиента.
Комментарий для Евгения Степанищева:
Текст программы, написанной сразу на нескольких языках программирования, тоже поначалу звучит, как фантастика.
Если там дальше по ссылкам пойти, там очень много всякого текста про cross-protocol scripting, готовые программы-эксплойты. Я не вникал.
Один из примеров такой:
http://ftp://%0ahelo%20localhost%0amail%20from%3A%20%3Ctest%40example.com%3E%0arcpt%20to%3A%20%3CXXXXX%40netscape.com%3E%0adata%0atest%20test%20test%0a.%0aquit:whocares%40localhost:25/
Браузер соединяется с smtp-сервером, как будто это ftp, и выдает ему вместо пароля smtp-сессию.
Другой пример: отправка какому-то сервису строки alert(document.cookie), сервис повторяет её в качестве текста ошибки, а браузер выполняет, считая, что ему ответили html-кодом, таким образом можно своровать куки.
http://eyeonsecurity.org/papers/Extended%20HTML%20Form%20Attack.htm
Вот PDF’ка с описанием:
http://www.remote.org/jochen/sec/hfpa/hfpa.pdf
Кратко: в textarea формы находится smtp-сессия, она посылается в виде multipart/form-data, то есть в незакодированном виде, начальные строки до первого HELO игнорируются smtp-сервером.
Комментарий для maxim-zotov.livejournal.com:
Для меня текст программы на нескольких языках не звучит как фантастика. Мало что можно придумать менее фантастичное.
За ссылки на HTML Form-атаку спасибо, буду изучать. Это для меня новый пласт. Правда запрет ходить на какие-то порты не защитит от echo-атаки. Можно поднять echo-сервис на любом порту, если я правильно понимаю её смысл.
Комментарий для maxim-zotov.livejournal.com:
Ага, прочитал про «Extended HTML Form Attack». Очень забавно. То есть кража куки с чужого сайта делается при помощи echo-сервиса этого сайта, если он конечно есть. Странно, что русскоязычных источников на эту тему я не вижу.
Комментарий для maxim-zotov.livejournal.com:
Правда, браузеру придётся отработать с нарушениями стандартов. Например, он должен, при указанном «Content-type: text/plan» всё-таки отобразить документ как HTML. Так делали IE 6 и ниже и какие-то древние версии «Оперы», что указано в статье.
Вторую статью я пролистал пока по диагонали, но. Все эти атаки работают с протоколом ftp или с использованием POST-запроса. В моём же случае, протокол HTTPS, а запрос сделан руками, прямой, без всякого POST.
Комментарий для Евгения Степанищева:
«при помощи echo-сервиса этого сайта, если он конечно есть»
Не только echo-сервиса, он приведен просто в качестве сферического примера.
Там ниже есть табличка с реальными сервисами и программами: Serv-U, WU-FTP, Imail, ProFTPD, QPOP.
Например:
$ telnet ftp.rbc.ru 21
Trying 80.68.240.41...
Connected to ftp.rbc.ru.
Escape character is ’^]’.
220 ftp.rbc.ru FTP server ready
user <html><script>alert(document.cookie)</script>
331 Password required for <html><script>alert(document.cookie)</script>.
Теоретически в этом случае браузер мог бы выдать куки домена rbc.ru.
Практически же сейчас попробовал так сделать, послать форму с таким кодом на 21-ый порт (перед этим убрал запрет на работу с ним), Firefox-2 показывает вывод ftp-сервера как text/plain, поэтому ничего не происходит. В MSIE 6 тоже попробовал, выдаёт ошибку загрузки страницы, но у MSIE всегда одна и та же ошибка, поэтому не разберёшь, что именно ему не нравится, возможно, именно порт.
Комментарий для Евгения Степанищева:
«Можно поднять echo-сервис на любом порту, если я правильно понимаю её смысл.»
echo-сервис не атакующий поднимает.
echo-сервис (или любой другой, выдающий в ответ то, что ему написали) должен работать в домене того сайта, с которого атакующий хочет получить куки. Если хочет получить куку yandex.ru, то на каком-то сервере *.yandex.ru должен работать такой сервис.
О! Получилось. Просто нужно было в action ставить адрес с расширением html, тогда firefox (пробовал на 2 и 3) считает это html-страницей и выводит alert с куками.
http://support.li.ru/tmp/rbc.html
Перед этим в prefs.js файерфокса нужно записать строку:
user_pref(«network.security.ports.banned.override», «21»);
Комментарий для maxim-zotov.livejournal.com:
Я там писал комментарии по мере того как читал текст и разбирался. Теперь-то я до конца всё прочитал :)
Комментарий для maxim-zotov.livejournal.com:
Как я и сказал, достаточно было поднимать шум на POST-запросах и на протоколах, отличных от HTTP/HTTPS.
Комментарий для Евгения Степанищева:
Думаю, лучше перебдеть, чем пытаться понять, возможен ли взлом не через post или нет. Да и вообще, зачем нужно запускать http-сервис на порту, закреплённым за другим сервисом? Зачем нужно вносить дополнительную путаницу, если можно решить задачу прямым способом без извращений?
Вот, кстати, работающий пример воровства куки домена masterhost.ru безо всяких дополнительных разрешений портов: http://support.li.ru/tmp/mh.html
Это к вопросу о безопасности запуска сервисов вообще на любых нестандартных портах (1024+). А казалось бы, что может быть страшного от почты на порту 2525.
Конечно, кука мастерхоста никому не нужна, но всё-таки. У того же mail.ru тоже есть smtp на 2525, но голыми руками его не взять, он выдаёт ошибку, если ему приходит слишком много неправильных команд (http-заголовок).
Комментарий для maxim-zotov.livejournal.com:
В интранете многое может понадобится. Например, запустить ещё один HTTPS-сайт на том же IP. TLS SNI ещё далеко не все браузеры умеют. А порт был выбран случайным образом.
Комментарий для maxim-zotov.livejournal.com:
А чьи логин и пароль там светятся на странице mh.html?
Комментарий для Евгения Степанищева:
Какого-то идиота, которому пришло в голову опубликовать свой логин-пароль в интернете.