eBay Captcha Lösen - "CSRF_VALIDATION_ERR" Error

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
4fersen
User
Beiträge: 11
Registriert: Samstag 28. März 2020, 21:47
Wohnort: 127.0.0.1

Hey Leute,
ich versuche gerade mithilfe von 2Captcha die eBay.de Captcha's zu lösen, was mir denke ich auch schon fast gelungen ist, jedoch erhalte ich jetzt jetzt diesen Fehler: "CSRF_VALIDATION_ERR" in der Antwort vom Server. Ich kann jedoch leider nirgendwo ein CSRF Token finden..

Der API Key im Code funktioniert, falls ihr diesen einmal ausprobieren möchtet.

Mein Code bisher:

Code: Alles auswählen

    from twocaptcha import TwoCaptcha
    import mechanicalsoup
    import sys
    import os
    sys.path.append(os.path.dirname(os.path.dirname(os.path.realpath(__file__))))

    user_agents = [
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.77 Safari/537.36",
        "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:89.0) Gecko/20100101 Firefox/89.0"]
    browser = mechanicalsoup.StatefulBrowser()
    browser.set_user_agent(user_agents[0])

    url = 'https://www.ebay.de/bin/purchaseHistory?item=233592905862&rt=nc&_trksid=p2047675.l2564'
    res = browser.open(url)
    form = res.soup.find('form', {'id': 'captcha_form'})

    srt = form.find('input', {'name': 'srt'})['value']
    ru = form.find('input', {'name': 'ru'})['value']
    cptap = form.find('input', {'name': 'cptap'})['value']
    appName = form.find('input', {'name': 'appName'})['value']
    cptrdbpid = form.find('input', {'name': 'cptrdbpid'})['value']
    iia = form.find('input', {'name': 'iia'})['value']
    iiz = form.find('input', {'name': 'iiz'})['value']
    iim = form.find('input', {'name': 'iim'})['value']

    # browser.launch_browser()

    api_key = os.getenv('APIKEY_2CAPTCHA', 'ad0d381411ecaf40977c8a18f719321e')
    solver = TwoCaptcha(api_key)
    try:
        result = solver.hcaptcha(
            sitekey=cptrdbpid,
            url=url,
        )

    except Exception as e:
        print('Not solved')

    else:
        print('solved: ' + str(result))

    payload = {"srt": srt,
               "ru": ru,
               "cptap": cptap,
               "appName": appName,
               "cptrdbpid": cptrdbpid,
               "iia": iia,
               "iiz": iiz,
               "iim": iim,
               "g-recaptcha-response": result['code'],
               "h-captcha-response": result['code'],
               "captchaTokenInput": "%7B%22guid%22%3A%" + cptrdbpid + '22%22%2C%22provider%22%3A%22hcaptcha%22%2C%22appName%22%3A%22orch%22%2C%22token%22%3A%22' +
                                    result['code'] + "%22%7D"
               }

    headers = {
        "accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
        "accept-encoding": "gzip, deflate, br",
        "accept-language": "de-DE,de;q=0.9",
        "cache-control": "max-age=0",
        "content-type": "application/x-www-form-urlencoded",
        "origin": "https://www.ebay.de",
        "referer": browser.url,
        "sec-ch-ua": '"Google Chrome";v="95", "Chromium";v="95", ";Not A Brand";v="99"',
        "sec-ch-ua-mobile": "?0",
        "sec-ch-ua-platform": "Windows",
        "sec-fetch-dest": "document",
        "sec-fetch-mode": "navigate",
        "sec-fetch-site": "same-origin",
        "sec-fetch-user": "?1",
        "upgrade-insecure-requests": "1"}
    res = browser.post('https://www.ebay.de/splashui/captcha_submit', json=payload, allow_redirects=True, timeout=15, headers=headers)
    print(res.content)
Hoffe mir kann jemand hierbei weiterhelfen ..

Liebe Grüße!
Antworten