Анализируя события HTTP_Post систем обнаружения, я поймал ряд POST-ов на gmail. Сохранение пакетов событий было настроено, таким образом, мне были доступны пакеты примерно следующего вида:
Возникла идея на удачу попробовать ретранслировать пойманный пакет. Я был полон уверенности, что такая простая атака не пройдет с Google, тем не менее, любопытство взяло свое, и я решил все-таки попробовать.
Для ретрансляции я использовал Tamper Data, поместив в строке запроса Firefox то, что было в строке POST, запустил перехват:
Согласившился с запросом вмешаться:
В появившемся списке заголовков я добавил/отредактировал Cookie и Referer, взяв их из пойманного пакета:
Я продолжал соглашаться с вмешательством и подставлять Cookie до тех пор, пока промптеры о необходимости вмешаться престали появляться. Я отключил перехват. Примечательно то, что в окне браузера я все же не увидел Inbox другого пользователя (жертвы, чей пакет был пойман), чего, собственно, я и ожидал. Тем не менее, снова, так просто, на всякий случай, я набрал в строке браузера http://mail.google.com/mail/ и, к своему удивлению, провалился в Inbox жертвы.
Описанное выше происходило в пятницу 14 Марта, вечером. Тогда я решил, что возможно, Cookie еще не успели протухнуть, хотя, то, что эти Cookie можно повторно использовать – уже уязвимость, которую необходимо исправлять.
17 Марта, утром я повторил ту же самую, описанную выше процедуру, взяв за основу тот же самый пакет. К своему ужасу я снова попал в тот же ящик, сделав вывод, что пойманные мной Cookie не протухают никогда.
Далее, я решил выйти из ящика жертвы, сказав “Sign out”. Примечательно, что после этого действия фокус перестал работать: сколько я не пытался повторно послать пакет, я не попадал в Inbox жертвы.
Поскольку я сам являюсь фанатом и активным пользователем сервисов Google, я описал все свои дознания в службу поддержки Google (в раздел советов по улучшению http://mail.google.com/support/bin/request.py?contact_type=suggest )
На мой взгляд (я не считаю себя глубоким специалистом в безопасности Web), на тот момент были возможны следующие «улучшения»:
· Сделать Cookie одноразовыми или как-то шифровать их – это сделает невозможным их повторное использование;
· По окончании работы с GMAIL принудительно завершать сессию пользователя (принудительный Sign out), чтобы никакие Cookie не воспринимались вообще.
Никакой обратной связи о том, что мое «улучшение» принято/отклонено/в таком-то статусе, не было, тем не менее, на следующий день, 18 Марта я решил попробовать работает ли фокус (конечно, я взял другую жертву, не ту, которой я сказал “Sign out”) и, внимание, фокус не работал: как бы я не пытался повторно переслать пойманные пакеты, я постоянно попадал в приглашение ввести логин/пароль. Мне остается только гадать о том, была ли эта простейшая уязвимость изначально и потом исправлена после получения моего «улучшения», или уязвимость проявилась как побочный эффект каких-то работ, которые проводились на Google. Важно, что проблема исчезла, к тому же так быстро!