Вечірній багхантинг на Facebook призвів до сервісу Soundcloud. Досліджувалася можливість XSS вразливостей при шейрингу треків у стрічку Facebook. Після кількох невдалих спроб захотілося перевірити і сам Soundcloud. Протягом перших 5 хвилин було виявлено марний, так званий self-xss - при додаванні нового тега можна передати скрипт. При наведенні на цей тег курсором виконувався код. Трохи пізніше я знайшов два відео в youtube.com, де горе багхантери викладали це як щось критичне (один навіть назвав відео як «Soundcloud Xss epic fail»). Продовживши свої розваги, підключив другого персонажа, адже якщо є атакуючий, повинна бути і жертва.
Залив новий трек, заповнив всі поля різними варіаціями XSS ін'єкцій і відправив трек жертві. Жертва відкрила трек з досить дивними тегами в назвах і описах, але таки послухала - вийшло стерпно, місцями не вистачало мастерингу. Про що, власне, жертва і вирішила повідомити автора, відправивши конструктивний коментар.
У цей час автор все продовжував шукати місця, де можна передати скрипти в полях виведення інформації на екран. В черговий раз, перевантаживши сторінку, атакуючий помітив нотифікацію. Клікнувши на дзвіночок, попап з історією повідомлень подарував оку віконце на весь екран - Бінго! Провівши невелике дослідження, виявилося, що скрипт, прописаний у назві треку, виконується попапом з нотифікаціями, якщо в одній з них йдеться про заражену композицію. Ось так все просто, як, втім, і завжди.
Як цим можна скористатися. Атакуючий викладає черговий хіт. Припустимо, що йому 100 осіб написали захоплені коментарі. Далі, атакуючий додає до назви треку «потрібний» скрипт і відповідає зустрічним коментарем кожному користувачеві. Всі юзери з часом бачать у себе нотифікацію, мовляв на ваш коментар була написана відповідь, але як тільки він відкрив попап з нотифікаціями, щоб про це дізнатися, код буде негайно виконаний. Куки злиті, проставлені нові лайки, репости, нові коментарі - у кого наскільки вистачить фантазії.
Після нетривалого пошуку по сайту я не знайшов спеціального місця, де можна було б зарепортити про проблему, тому вирішив скористатися стандартною сторінкою фідбеків. Надіславши повідомлення, через кілька годин вирішив перевірити наявність спец. сторінки для багрепортів - і таки знайшов її. Зарепортив ще раз.
Через день мені прийшло повідомлення про те, що вже зарепортили до мене. Спробував з'ясувати, хто і коли, виявилося, судячи з підрахунків, про бага зарепортили приблизно на 10 годин раніше. Так це чи ні, залишиться загадкою.
Ось такий він, дивно-синхронний багхантинг.
