mirror of
https://github.com/hackdiaz-dev/free-turn-proxy.git
synced 2026-10-12 09:41:53 +02:00
39 lines
1.7 KiB
Bash
39 lines
1.7 KiB
Bash
#!/usr/bin/env bash
|
|
# Снимает живую страницу VK captcha: анонимный токен -> вызов, который отдаёт
|
|
# error 14 -> redirect_uri -> HTML. Нужен, чтобы диффать разметку после
|
|
# очередной смены формата PoW.
|
|
#
|
|
# usage: scripts/captcha_page.sh [out.html]
|
|
set -euo pipefail
|
|
|
|
OUT="${1:-captcha_page.html}"
|
|
UA="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36"
|
|
CLIENT_ID="6287487"
|
|
CLIENT_SECRET="QbYic1K3lEV5kTGiqlq2"
|
|
|
|
req() { curl -sf --compressed -A "$UA" -H "Origin: https://vk.ru" -H "Referer: https://vk.ru/" "$@"; }
|
|
|
|
token=$(req "https://login.vk.ru/?act=get_anonym_token" \
|
|
-d "client_secret=$CLIENT_SECRET&client_id=$CLIENT_ID&scopes=audio_anonymous&isApiOauthAnonymEnabled=false&version=1&app_id=$CLIENT_ID" |
|
|
sed -E 's/.*"access_token":"([^"]+)".*/\1/')
|
|
|
|
# Ссылка заведомо несуществующая: captcha прилетает раньше её проверки.
|
|
uri=$(req "https://api.vk.ru/method/calls.getAnonymousToken?v=5.282&client_id=$CLIENT_ID" \
|
|
-d "vk_join_link=https://vk.ru/call/join/aaaaaaaaaaaa&name=Test&access_token=$token" |
|
|
sed -E 's/.*"redirect_uri":"([^"]+)".*/\1/; s/\\u0026/\&/g')
|
|
|
|
case "$uri" in
|
|
https://*not_robot_captcha*) ;;
|
|
*)
|
|
echo "captcha не показана, повтори позже: $uri" >&2
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
curl -sf --compressed -A "$UA" -H "Referer: https://vk.com/" \
|
|
-H "Sec-Fetch-Dest: document" -H "Sec-Fetch-Mode: navigate" \
|
|
-H "Sec-Fetch-Site: cross-site" -H "Upgrade-Insecure-Requests: 1" \
|
|
"$uri" >"$OUT"
|
|
|
|
echo "$OUT ($(wc -c <"$OUT") bytes)"
|