Представляю вашему вниманию обзор уязвимости, связанной с неправильным применением JSONP в VK Open Api. На мой взгляд, уязвимость достаточно серьёзная, т.к. позволяла сайту злоумышленника получать Access Token другого сайта, если на нём используется авторизация через библиотеку VK Open API. На данный момент уязвимый код поправили, репорт на HackerOne закрыли, вознаграждение выплатили (1,500$).
В принципе, процесс получения пользовательского Access Token'а страницей злоумышленника происходил по стандартной схеме эксплуатации CSRF-уязвимости:
1. Пользователь заходит на сайт, использующий библиотеку VK Open API (например, [www.another-test-domain.com][1]).
2. Авторизуется там через VK.
3. Потом заходит на сайт злоумышленника (например, [www.vk-test-auth.com][2]), который, эксплуатируя уязвимость, получает Access Token, принадлежащий сайту [www.another-test-domain.com][3].
4. Получив Access Token пользователя, злоумышленник может обращаться к VK API с теми правами, который пользователь дал сайту [www.another-test-domain.com][4] при авторизации на нем через VK.
На видео показано, как страница «злоумышленника» на домене [www.vk-test-auth.com][5] получает Access Token пользователя VK, который авторизовался на сайте [www.another-test-domain.com][6], несмотря на то, что в настройках приложения VK, доступ разрешён только для домена [www.another-test-domain.com][7].
[Читать дальше →][8]
[1]:
http://www.another-test-domain.com
[2]:
http://www.vk-test-auth.com
[3]:
http://www.another-test-domain.com
[4]:
http://www.another-test-domain.com
[5]:
http://www.vk-test-auth.com
[6]:
http://www.another-test-domain.com
[7]:
http://www.another-test-domain.com
[8]:
http://habrahabr.ru/post/271031/#habracut