Главное Авторские колонки Вакансии Вопросы
0 0 В избр. Сохранено
Авторизуйтесь
Вход с паролем

Уязвимость в Instagram API, обнаруженная разработчиками сервиса InstaLiker

При разработке InstaLiker, стала заметна интересная особенность: приходят непреобразованные теги. Пофиксить этот момент можно буквально парой строк кода, именно так мы и поступили в InstaLiker, но закралась мысль – а что если не все разработчики озаботились безопасностью пользователей, доверившись программистам, создавшим Instagram API?...
Мнение автора может не совпадать с мнением редакции

Разрабатывая приложение InstaLiker, использующее Instagram API, стало заметно, что приходят не преобразованные теги. Безусловно, такая проблема решается за пару строчек кода. Но я подумал, а что если не все разработчики преобразовывают теги в сущности перед выводом на страницу, полностью доверяя API. Кто будет ожидать, что в описании страницы Instagram будет JS скрипт вместо текста?

Я нашел такие сайты. Для начала добавил в описание профиля подключение удаленного скрипта js, а в описание некоторых фотографии строку

alert(document.cookie); и несколько хештегов, среди которых #instagramapi. Первый сайт, который я нашел — это Iconosquare

.

IconoSquare — полезное приложение для анализа и управления вашим аккаунтом в Инстаграм. Удобный веб-интерфейс сэкономит время и поможет в общении с подписчиками. Через IconoSquare можно просматривать профили или искать по хэштегу
На этом сайте я решил искать свою фотографию по хештегу #instagramapi, в моем случае это была фотография с котом. При нажатии на фотографию меня перекидывало на страницу, где содержится описание фотографии, но Iconosquare забыли преобразовать html-теги в сущности. Это дало возможность выполнения XSS.

b_54dda15798d90.jpg

Открыв исходники страницы, сразу стало понятно, что они забыли преобразовать теги в мета описании страницы.

b_54dda1c6ec77b.jpg

На самом деле я нашел 27 сайтов, где можно провести XSS-атаку. Думаю, что не обязательно расписывать их всех, вот ссылки на страницы с XSS.Список всех сайтов:

iconosquare.com/p/783308509456027184_220257738 tagboard.com/instagramapi/search pinsta.me/asset_93 yooying.com/p/783308509456027184_220257738 collec.to/i/783308509456027184_220257738 songery.net/img/783308509456027184_220257738 carouselle.me/#/by/asset_93 picbi.com/asset_93 webgram.ru/p/asset_93/ twitnow.ru/instagram/u?q=220257738&u=asset_93 instagramsearchonline.com/tag/instagramapi/#.VL7H3EesXfI japastagram.com/ph/?q=902278032086716165_220257738 www.lakako.com/post/783308509456027184 pingram.me/asset_93 www.netstagram.com/user/220257738 tagstag.com/user/asset_93 the-photo-flow.com/search.html?q=asset_93 instaprof.appspot.com/profile/asset_93 facegram.io/u/asset_93&script-alert-script&220257738 instagramology.com/media/902278032086716165_220257738 bitroad.net/u/asset_93&Asset-Mamyraimov sharetagram.com/user/220257738/asset_93 www.vinevideoviewer.com/u/220257738

Я пытался написать в Iconosquare и в поддержку нескольких других сайтов, но они никак не отреагировали. Может быть, кто-нибудь из вас сможет сообщить разработчикам этих сайтов об уязвимости. P.S. Эта статья написана, чтобы сообщить разработчикам о том, что не стоить доверять полученным от Instagram API данным. P.P.S. Аналогичная ситуация и с приложениями, использующими Facebook API.

Ответ Instargram/Facebook на уязвимость:

You're correct. However, that's a problem every programmer has to face. There's a programming principle that you should always make sure data is sanitized before displaying/processing it. That responsibility falls in the hands of the developers, because only they know the context in which the data is going to be used. We do appreciate you taking the time to write your reports, but only reports that are about vulnerabilities in Facebook products and qualifying acquisitions. Please follow up with any security vulnerabilities you find.
In these cases, the third-party app developers are responsible for properly escaping data from the Instagram API. You may want to contact the app developers, but you are correct that we do not consider this a vulnerability in Instagram.
0
В избр. Сохранено
Авторизуйтесь
Вход с паролем
Комментарии
Выбрать файл
Блог проекта
Расскажите историю о создании или развитии проекта, поиске команды, проблемах и решениях
Написать
Личный блог
Продвигайте свои услуги или личный бренд через интересные кейсы и статьи
Написать

Spark использует cookie-файлы. С их помощью мы улучшаем работу нашего сайта и ваше взаимодействие с ним.