Сегодня вышел IE7. Сегодня в IE7 нашли дырку. XmlHttpRequest, получив редирект на URL с таинственной схемой "mhtml", ничтоже сумняшеся отправляет данные на произвольный сервер в Интернете.
The vulnerability is caused due to an error in the handling of redirections for URLs with the "mhtml:" URI handler. This can be exploited to access documents served from another web site.
correct me if I'm worng, мне кажется, что использовать можно так. Вы залогинились на своем супер-любимом сайте, где либо пишете блог, либо являетесь администратором. Этот сайт использует модные ajax фичи и в частности позволяет делать запросы типа обновить или удалить через XmlHTTPRequest.
Дальше неразлогинившись Вы идете на сайт к зоумышленнику. Пусть он каким-то образом знает, что Вы к нему придете. На этом сайте тоже используется ajax. Вот только в ответ на запрос к серверу он выдает вот такой вот редирект на ваш сервер с командой на удалить или обновить. Поскольку этот редирект выполняет Ваш браузер, при этом в Вашей системе Вы авторизованы, то запрос выполняется.
В общем примерно так. Это вариация на тему XSS (Cross Site Scripting+CDRF(Cross Domain Request Forgery).
Всё, описанное Вами, можно сделать без использования этой дырки и XmlHTTPRequest вообще - в невидимом фрейме создать форму и сабмитнуть её можно на любой домен. Именно поэтому для критических вещей сайты обычно требуют ввод пароля непосредственно в форме.
кстати, почему до сих пор trusted-правила не ввели? приходится с проксями гемороиться, а решение на поверхности - куда можно, куда нет. типа на той стороне (к которой делаем request) - решаем, доверяем или нет? будет все честно - если я доверяю ко мне ходит такому-то, почему бы и нет? robots.txt ведь есть - вот на этом же уровне. From: *.rambler.ru Allow: / From: *.yandex.ru Disallow: /porno/
таким образом рулю я, кто ко мне приходит, а кто отваливается с permission denied или как-то еще. на стороне клиента можно (и нужно) проверять код возврата, а стороне сервера рулить.
Это все понятно - только это проблемы другого порядка. Если ты ко мне придешь как quappa.rambler.ru, а back-резолвиться будешь как quappa.yandex.ru - получишь отлуп (в крайнем случае, ляжешь в морозилку), что логично. И попробуй это подмени. А дергать чей-то внешний XML через обычный GET на локальной проксе, чтобы реально его получить - выглядит по меньшей мере издевательски. Я в любом случае до твоих _публичных_ данных доберусь, так или иначе =) А о скрытых речь не идет.
Reply
Reply
Reply
The vulnerability is caused due to an error in the handling of redirections for URLs with the "mhtml:" URI handler. This can be exploited to access documents served from another web site.
Reply
Дальше неразлогинившись Вы идете на сайт к зоумышленнику. Пусть он каким-то образом знает, что Вы к нему придете. На этом сайте тоже используется ajax. Вот только в ответ на запрос к серверу он выдает вот такой вот редирект на ваш сервер с командой на удалить или обновить. Поскольку этот редирект выполняет Ваш браузер, при этом в Вашей системе Вы авторизованы, то запрос выполняется.
В общем примерно так. Это вариация на тему XSS (Cross Site Scripting+CDRF(Cross Domain Request Forgery).
Reply
Reply
Reply
Reply
From: *.rambler.ru
Allow: /
From: *.yandex.ru
Disallow: /porno/
таким образом рулю я, кто ко мне приходит, а кто отваливается с permission denied или как-то еще. на стороне клиента можно (и нужно) проверять код возврата, а стороне сервера рулить.
Reply
Reply
А дергать чей-то внешний XML через обычный GET на локальной проксе, чтобы реально его получить - выглядит по меньшей мере издевательски. Я в любом случае до твоих _публичных_ данных доберусь, так или иначе =) А о скрытых речь не идет.
Reply
Сценарий: сидя в офисе Рамблера ты заходишь на злой сайт, который через твой браузер перекачивает к себе наш интранет.
Reply
Leave a comment