Загрузка...

Discord joiner

Тема в разделе Python создана пользователем Maxim155511 17 май 2025. 292 просмотра

Загрузка...
  1. Maxim155511
    Maxim155511 Автор темы 17 май 2025 83 22 апр 2024
    Привет, делаю джоинер с обходом капчи на питоне, но есть некоторые проблемы.

    Короче, есть пост запрос
    ⁡https://discord.com/api/v9/invites/{invitecode}
    ⁡,по которому можно зайти на сервер, в заголовках передаю само собой с токеном.

    Тут начинается веселье, если обнаруживается капча, то по запросу, что выше, приходит статус код 400 и инфа про капчу
    ⁡RESPDISCORD: {"captcha_key": ["You need to update your app to join this server."], "captcha_sitekey": "a9b5fb07-92ff-493f-86fe-352a2803b3df", "captcha_service": "hcaptcha", "captcha_rqdata": "T5TGhdE17CuNjRXGVTMJxewVgQWWvBv6655WHvsyRI7BUrr2XYuhfLYkU1xd0xEhmc7rfxyOB13FIIsibSpdkc5wx2rtQwCdimji5yZSzPOC5Vy3f5zLCgth4MNbEdQ9KI1PdBBl2cv1BbhOguRGa3MJvZYlmePGipmx/gO2", "captcha_rqtoken": "Im5TMzhIaXFvbjNORkxlYTZsMXZEdmtUMzcxZUlVQWhBV1U5bFFiVUVtYjBaOFB0OXd2eDBrMmVHOGlXZzJzMFRJNkYwRGc9PXBqbWNSSmVRNnc1cUNyNHAi.YyRT5A.Afx9SjAbHiTq5c5VKAzA-LP8TUw"}



    Я решил проходить эту капчу с помощью стороннего сервиса, через его API я передаю captcha_sitekey, через некоторое время получаю captcha_key. Так вот, когда лазил в нетворке входа на сервер дискорда, увидел, что когда я решил капчу отправляется такой же пост запрос дискорду, что и выше, но передается
    так же captcha_key, captcha_rqtoken и прочее.

    Вообщем я все это повторил, но у меня не получается. Всё так же запросы возвращают код 400 и ответ, который выглядит примерно вот так:
    ⁡RESPDISCORD: {"captcha_key":["invalid-response"],"captcha_sitekey":"a9b5fb07-92ff-493f-86fe-352a2803b3df","captcha_service":"hcaptcha","captcha_session_id":"1f092198-0235-47ae-b1b4-5cd5d8c7b640","captcha_rqdata":"4HtBO+Bkh1dSW60i/FCtXBEl+M4/wAYtJptUGh25pxGSLrVubUObqzFTsVyWhORTfJA/q495gFs3cyZfzit2rT7u71VaJlWQjX5GJyX1DU1RcS1QSLtFrrb8jW23OqJZrmDvR5H/v9zUjA==FR0oaGXcHxfQXanX","captcha_rqtoken":"IjNSZkoxQyt4STE3RnpkUnNnRHY3a0JNRG9iRGgzVjdVV0pBckFONHcxcUY3TGJmQlJ1L3Vsck16QllLVklCZjdzd0tKd2c9PTdJTmxZTGZMcUJqN1ViT1Ai.aChi6g.C1h5unPYpWZ4O3rWXeCtNZ2Mh2k"}


    Если кто то знает как это правильно делается, прошу помощи.

    Код ниже:
    Python
    import requests as r
    import ssl
    import time
    import json

    ssl._create_default_https_context = ssl._create_unverified_context


    def solve_hcaptcha(sitekey, url):
    API_KEY = ""
    in_url = "https://api.solvecaptcha.com/in.php"
    payload = {
    'key': API_KEY,
    'method': 'hcaptcha',
    'sitekey': sitekey,
    'pageurl': url,
    'json': 1
    }

    response = r.post(in_url, data=payload)
    result = response.json()

    if result.get("status") != 1:
    print("Ошибка при отправке запроса:", result.get("request"))
    return None

    captcha_id = result.get("request")
    print("Получен captcha_id:", captcha_id)

    res_url = "https://api.solvecaptcha.com/res.php"
    params = {
    'key': API_KEY,
    'action': 'get',
    'id': captcha_id,
    'json': 1
    }
    while True:
    res = r.get(res_url, params=params)
    data = res.json()

    if data.get("status") == 1:
    print("Капча успешно решена!")
    return data["request"]
    elif data.get("request") == "CAPCHA_NOT_READY":
    print("Капча ещё не готова, ждем 1 секунду...")
    time.sleep(1)
    else:
    print("Ошибка получения решения:", data.get("request"))
    exit()


    def invite(token, invitecode):
    s = r.session()
    s.headers['authorization'] = token
    resp = s.get('https://discord.com/')
    coo = resp.cookies
    cookies = {
    '__dcfduid': coo.get('__dcfduid'),
    '__sdcfduid': coo.get('__sdcfduid'),
    '__cfruid': coo.get('__cfruid'),
    'locale': 'en-US',
    }
    print("cookies: ", cookies)
    url = f"https://discord.com/invite/{invitecode}"
    resp = s.post(f"https://discord.com/api/v9/invites/{invitecode}", json={}, timeout=20)
    print("RESPDISCORD:", resp.text)
    if resp.text.__contains__("captcha_sitekey"):
    serialized_resp = resp.json()
    captcha_sitekey = serialized_resp.get("captcha_sitekey", "")
    print(captcha_sitekey)
    captcha_key = solve_hcaptcha(captcha_sitekey, url)
    captcha_rqtoken = serialized_resp.get("captcha_rqtoken", "")
    captcha_session_id = serialized_resp.get("captcha_session_id", "")
    print("captcha_key: ", captcha_key)
    print("captcha_rqtoken: ",captcha_rqtoken)
    print("captcha_session_id: ",captcha_session_id)
    s.headers = {
    "authority": "discord.com",
    "method": "POST",
    "path": f"/api/v9/invites/{invitecode}",
    "scheme": "https",
    "Accept": "*/*",
    "Accept-Encoding": "gzip, deflate, br, zstd",
    "Accept-Language": "ru-RU,ru;q=0.9,en-US;q=0.8,en;q=0.7",
    "Authorization": token,
    #"Content-Length": "19",
    "Content-Type": "application/json",
    "Cookie": '; '.join([f"{k}={v}" for k, v in cookies.items() if v is not None]),
    "Origin": "https://discord.com",
    "Priority": "u=1, i",
    "Referer": f"https://discord.com/invite/{invitecode}",
    "Sec-Ch-Ua": '"Chromium";v="124", "Google Chrome";v="124", "Not-A.Brand";v="99"',
    "Sec-Ch-Ua-Mobile": "?0",
    "Sec-Ch-Ua-Platform": '"Windows"',
    "Sec-Fetch-Dest": "empty",
    "Sec-Fetch-Mode": "cors",
    "Sec-Fetch-Site": "same-origin",
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",
    "X-Context-Properties": "eyJsb2NhdGlvbiI6IkFjY2VwdCBJbnZpdGUgUGFnZSIsImxvY2F0aW9uX2d1aWxkX2lkIjoiMTM2OTY1MDg1ODAyNjg2NDY5MiIsImxvY2F0aW9uX2NoYW5uZWxfaWQiOiIxMzY5NjUwODU4NTI2MTEzODA0IiwibG9jYXRpb25fY2hhbm5lbF90eXBlIjowfQ==",
    "X-Debug-Options": "bugReporterEnabled",
    "X-Discord-Locale": "en-US",
    "X-Discord-Timezone": "Europe/Moscow",
    "X-Captcha-Key": captcha_key,
    "X-Captcha-Rqtoken": captcha_rqtoken,
    "X-Captcha-Session-Id": captcha_session_id,
    "X-Super-Properties": "eyJvcyI6IldpbmRvd3MiLCJicm93c2VyIjoiQ2hyb21lIiwiZGV2aWNlIjoiIiwic3lzdGVtX2xvY2FsZSI6InJ1LVJVIiwiaGFzX2NsaWVudF9tb2RzIjpmYWxzZSwiYnJvd3Nlcl91c2VyX2FnZW50IjoiTW96aWxsYS81LjAgKFdpbmRvd3MgTlQgMTAuMDsgV2luNjQ7IHg2NCkgQXBwbGVXZWJLaXQvNTM3LjM2IChLSFRNTCwgbGlrZSBHZWNrbykgQ2hyb21lLzEzNi4wLjAuMCBTYWZhcmkvNTM3LjM2IiwiYnJvd3Nlcl92ZXJzaW9uIjoiMTM2LjAuMC4wIiwib3NfdmVyc2lvbiI6IjEwIiwicmVmZXJyZXIiOiIiLCJyZWZlcnJpbmdfZG9tYWluIjoiIiwicmVmZXJyZXJfY3VycmVudCI6IiIsInJlZmVycmluZ19kb21haW5fY3VycmVudCI6IiIsInJlbGVhc2VfY2hhbm5lbCI6InN0YWJsZSIsImNsaWVudF9idWlsZF9udW1iZXIiOjQwMDQ1MywiY2xpZW50X2V2ZW50X3NvdXJjZSI6bnVsbCwiY2xpZW50X2xhdW5jaF9pZCI6IjM1ZTkzOGUwLWU2YjktNGVjMS1hN2QyLWVlMmUyZDUzZWY2MSIsImNsaWVudF9oZWFydGJlYXRfc2Vzc2lvbl9pZCI6IjNlY2RmZmI5LTIyMzAtNDk2NC1hOWVlLTU4MWMzNWU2OWI3YyJ9"
    }
    print(s.headers)
    resp = s.post(f"https://discord.com/api/v9/invites/{invitecode}", json={})
    print("RESPDISCORD:", resp.text)
    print(resp.status_code)
    else: print("Нету капчи")


    token = ""

    if __name__ == "__main__":
    invite(token, "abcd")


     
  2. PersonOfInterest
    PersonOfInterest 17 май 2025 Дуров сидит тут -> https://t.me/Kanalchik_alexa 156 15 ноя 2022
    На каждый запрос Дискорд отвечает капчей и каждый раз капча новая. Вы пытаетесь отправить запрос Дискорду с уже включенными "ключами" капчи. По сути Вы отвечаете Дискорду на "реши капчу номер 124" запросом "на держи данные и решение капчи 132".
     
    1. Посмотреть предыдущие комментарии (2)
    2. Maxim155511 Автор темы
      PersonOfInterest, Ну так есть сервисы по типу 2captcha, rucaptcha и тд. Я как раз и пользуюсь таким. Мне возвращается ключ капчи (captcha_key) P1_............ И как я уже говорил "когда я решил капчу отправляется такой же пост запрос дискорду, что и выше, но передается так же captcha_key, captcha_rqtoken и прочее."
    3. PersonOfInterest
      Maxim155511, ими же и пользуйтесь, обмануть Дискорд не получится.
    4. Maxim155511 Автор темы
      PersonOfInterest, ну так после получения captcha_key от сервиса надо же что-то сделать, чтобы дискорд обработал мой запрос на вступление на дс сервер
  3. Sergo127
    Sergo127 23 май 2025 1 18 авг 2023
    1. Ты не передаёшь captcha_rqdata, хотя Discord его часто требует
    2. Некорректный captcha_key от solvecaptcha (Возможно сервис который ты юзаешь не поддерживает hCaptcha Enterprise - именно его юзает дс)
    3. Отсутствие X-Captcha-Rqdata, либо же некорректный заголовок X-Captcha-* (Все значения нужно передавать как строку, ничего не должно быть None или '') Если поле вообще не нужное то его вообще не передавай даже

    Второй запрос после получения капчи должен выглядеть примерно так

    JSON
    {
    "captcha_key": "РЕШЕНИЕ ОТ СЕРВИСА",
    "captcha_rqtoken": "ТО ЧТО ДАЛ DISCORD",
    "captcha_rqdata": "ТО ЧТО ДАЛ DISCORD"
    }

    А не просто пустой json={} как у тебя сейчас.
     
    23 май 2025 Изменено
Top