ALERT!
Click here to register with a few steps and explore all our cool stuff we have to offer!
Other languages

www.petro-canada.ca login demo source code, cf cookie+tls+recaptcha has been solved

Submitted by sysdemo at 23-03-2025, 09:55 AM


www.petro-canada.ca login demo source code, cf cookie+tls+recaptcha has been solved
1.430 Views
sysdemo's Avatar'
sysdemo
Offline
#1
[ Hidden Content! ]

Code:
from math import fabs
import sys
from unittest import result
from weakref import proxy
import requests
import json
import random
import string
import re

# captcha api config on https://www.clearcaptcha.com
clearcaptcha_recaptcha_api="http://api.clearcaptcha.com/captcha/recaptcha_v2v3";
clearcaptcha_cf_api="http://api.clearcaptcha.com/captcha/cloudflare_challenge";
tls_api="http://api.clearcaptcha.com/captcha/tls";
token = 'test'
user_agent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36"

def tls_result(url,method,headers,body,user_agent,proxy, cookie="", redirect=True):
    
    data = {
        'token': token,
        'method': method,
        'url': url,
        'headers': json.dumps(headers),
        'body': body,
        'user_agent': user_agent,
        'proxy': proxy,
        'cookie': cookie,
        'allow_redirect': str(redirect).lower()
    }
    
    try:
        response = requests.post(tls_api, data=data, allow_redirects=redirect)
        return response.json()
    except requests.RequestException as e:
        print(str(e))
        sys.exit()
        
def random_string(length=9):
    return ''.join(random.choices(string.ascii_letters, k=length))

proxy=f"pkg-royal-country-us-session-{random_string()}:[email protected]:8603"

session = requests.Session()
session.proxies.update({
        "all": "http://"+proxy
    })


post_data =  {
        "token": token,
        "url":"https://www.petro-canada.ca/en/personal/login",
        "proxy":proxy
     }
response = requests.post(clearcaptcha_cf_api, json=post_data)
if '"code":200' not in response.text:
    print("get cloudflare challenge fail")
    sys.exit()
response_data = response.json()
response_headers=response_data["data"]["headers"]
response_cookie=response_data["data"]["cf_turnstile_cookies"]
user_agent=response_headers["user-agent"]

headers={
    "Accept":"*/*",
    "Accept-Encoding":"gzip, deflate, br, zstd",
    "Accept-Language":"en-US,en;q=0.9",
    "Cache-Control":"no-cache",
    "Connection":"keep-alive",
    "Cookie": response_cookie,
    "Host":"www.petro-canada.ca",
    "Origin":"https://www.petro-canada.ca",
    "Pragma":"no-cache",
    "Referer":"https://www.petro-canada.ca/",

}

headers.update(response_headers)


cookies = {cookie.split("=")[0]: "=".join(cookie.split("=")[1:]) for cookie in response_cookie.split("; ")}
session.cookies.update(cookies)

response_data = tls_result("https://www.petro-canada.ca/en/personal/login", "GET", headers, "", user_agent, proxy, response_cookie);
response_html = response_data["data"]["result"]
if response_data["data"]["status_code"]!="0":
    print(f"open home page fail, status code: {response_data["data"]["status_code"]}")
    sys.exit();
print(f"open home page success, status code: {response_data["data"]["status_code"]}")

match = re.search(r'name="__RequestVerificationToken".*?value="(.*?)"', response_html)
if match:
    request_verification_token = match.group(1)
    print(request_verification_token)
else:
    print("__RequestVerificationToken not found")
    sys.exit()

post_data =  {
        "token": token,
        "sitekey": "6LeuGYEjAAAAAOaPqAckgwRGjH2G09CFkxca7VkB",
        "referer":"https://www.petro-canada.ca/en/personal/login",
        "recaptcha_anchor_size":"invisible",
        "page_title":"Petro-Points Login or Sign in | Petro-Canada",
        "action":""
     }
response = requests.post(clearcaptcha_recaptcha_api, data=post_data)
if '"code":200' not in response.text:
    print("get recaptcha token fail")
    sys.exit()
response_data = response.json()
recaptcha_token=response_data["data"]["recaptcha_token"]


    
post_data =  {
        "email": "[email protected]",
        "password": "asdfasfdsss",
        "recaptchaResponse":recaptcha_token,
    }
headers["Content-Type"]="application/json"
headers["__requestverificationtoken"]=request_verification_token
response_data = tls_result("https://www.petro-canada.ca/en/api/petrocanadaaccounts/signin?ds=C29039EA9E1C49A5BEC96D19CF0FEED4", "POST", headers, json.dumps(post_data), user_agent, proxy, response_cookie);
response_html = response_data["data"]["result"]
print(response_html)

0
Reply


Messages In This Thread
www.petro-canada.ca login demo source code, cf cookie+tls+recaptcha has been solved - by sysdemo - 23-03-2025, 09:55 AM


Users browsing this thread: 1 Guest(s)