INTRODUÇÃO
Recentemente, deparei-me com uma situação usual da Internet - um pedido clássico de um parente para votar em algum tipo de voto. Aconteceu que o homem foi “hackeado” por golpistas, e os links para a votação foram os recursos de phishing.
Eu gosto de segurança, então decidi verificar a segurança do recurso de phishing por interesse.
O painel de administração dos golpistas foi hackeado com sucesso; havia um número n de contas roubadas. Seus logins foram transferidos para o serviço de segurança da VK, e as queixas correspondentes de "abuso" foram enviadas aos registradores e hosters.
E agora vou lhe contar como e quais painéis de Phishing como serviço acabam sendo ...
Tudo começou como sempre, um pedido de um parente para votar em algum tipo de voto:
Parente:
Oi, eu só quero ganhar :) http://x-vote.ru/votes/701738#vote

De fato, provavelmente ignorará tal solicitação, mas, do ponto de vista da segurança, havia um interesse em verificar a condição de corrida no próprio voto - será possível que 1 conta dê alguns votos de fato enviando-os vários em um curto período de tempo.
, . , , , Oauth , .

, , .
, Race Condition , , , , , - - .
, , , - , , , , / "" HTML+JS, Blind XSS. , — / .
xsshunter — . XSS, :
- url, ;
- IP;
- Cookie;
- Dom-;
… . , , , VPS.
, blind XSS- .

, XSS " " ( document.cookie).
, — "httpOnly", JS.
XSS , - API , (), .
, "" .
, , .
, , , — .


. bootstrap , , :
:

:

API:

IP.

, , :


:


, :



… .
API , , , , .., execute.getDialogsWithProfilesNewFixGroups.php, :
https://vk.com/dev/execute
.
— VK .
access-, , .
:
GET /method/execute.getDialogsWithProfilesNewFixGroups?access_token=****b750be150c961c******ace8d9dd54e448d5f5e5fd2******7e21388c497994536a740e3a45******&lang=ru&https=1&count=40&v=5.69 HTTP/1.1
Host: vk-api-proxy.xtrafrancyz.net
HTTP/1.1 200 OK
Date: Tue, 03 Mar 2020 09:57:08 GMT
Content-Type: application/json; charset=utf-8
Connection: close
Vary: Accept-Encoding
Server: vk-proxy
X-Powered-By: PHP/3.23359
Cache-Control: no-store
X-Frame-Options: DENY
Access-Control-Allow-Origin: *
Content-Length: 57453
{"response":{"a":{"count":271,"unread_dialogs":151,"items":[{"message":{"id":592***,"date":1583222677,"out":0,"user_id":14967****,"read_state":1,"title":"","body":" : 063725.","owner_ids":[]},"in_read":592***,"out_read":592***}
, . , — "" , . , + , , .
, , , , .
, , ?
-, , , , , : , , blind xss , VK Bo0oM, , , , .
complaint' . cloudflare', . , , , . - Cloudflare , https://www.cloudflare.com/abuse/form, — 1 url ¯ \ (ツ) / ¯
— 10 .

, , .
UPD: QIWI Yandex, .