XSS на сайтах, що використовують Instagram API

Розробляючи додаток, що використовує Instagram API, я помітив, що мені приходять не перетворені теги. Безумовно, така проблема вирішується за пару рядків коду. Але я подумав, а що якщо не всі розробники перетворюють теги по суті перед виведенням на сторінку, повністю довіряючи API. Хто буде очікувати, що в описі сторінки Instagram буде JS скрипт замість тексту?

Я знайшов такі сайти.

Для початку додав в опис профілю підключення віддаленого скрипта js, а в опис деяких фотографії рядок
<script > alert(document.cookie);</script>
і кілька хештегов, серед яких #instagramapi.

Перший сайт, який я знайшов — це Iconosquare.

IconoSquare — корисний додаток для аналізу та управління вашим акаунтом у Instagram. Зручний веб-інтерфейс заощадить час і допоможе в спілкуванні з клієнтами. Через IconoSquare можна переглядати профілі або шукати по хештегу


На цьому сайті вирішив шукати свою фотографію за хештегом #instagramapi, в моєму випадку це була фотографія з котом.

При натисканні на фотографію мене перекидывало на сторінку, де міститься опис фотографії, але Iconosquare забули перетворити html-теги в сутності. Це дало можливість виконання XSS.

Подивитися зображенняimage

Відкривши исходники сторінки, відразу стало зрозуміло, що вони забули перетворити теги мета в описі сторінки.

Подивитися зображенняimage

сторінці користувача вони не перетворювали ім'я та опис профілю Instagram — і ось результат.

Подивитися зображенняimage

Наступний сайт, який я знайшов — це facegram.io.

Як я зрозумів, facegram.io — це ще один Instagram Web Viewer. У сервісу близько 50 000 передплатників на Facebook, так що, думаю, його можна вважати популярним.

Тут ми теж шукаємо за хештегом #instagramapi і ось результат:

Подивитися зображенняimage

Аналогічно на сторінці користувача.

Насправді я знайшов 27 сайтів, де можна провести XSS-атаки. Думаю, що не обов'язково розписувати їх всіх, ось посилання на сторінки з XSS.

Список всіх сайтівiconosquare.com/p/783308509456027184_220257738
tagboard.com/instagramapi/search
pinsta.me/asset_93
yooying.com/p/783308509456027184_220257738
instaliga.com/asset_93/783308509456027184_220257738
collec.to/i/783308509456027184_220257738
songery.net/img/783308509456027184_220257738
carouselle.me/#/by/asset_93
picbi.com/asset_93
webgram.ua/p/asset_93/
twitnow.ua/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

Потрібно шукати за хештегом instagramapi, або ж за користувачеві asset_93.

techslides.com/demos/instagram-viewer/
instaviewer.net/
findgram.com/

Я намагався написати в Iconosquare і підтримку декількох інших сайтів, але вони ніяк не відреагували. Може бути, хто-небудь з вас зможе повідомити розробникам цих сайтів про уразливості.

P. S. Ця стаття написана, щоб повідомити розробників про те, що не варто довіряти отриманим від Instagram API даними.

P. P. S. Аналогічна ситуація і з додатками, що використовують Facebook API. Ось приклад.

Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.