Seite 1 von 1

eBay Captcha Lösen - "CSRF_VALIDATION_ERR" Error

Verfasst: Sonntag 14. November 2021, 13:59
von 4fersen
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!