Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
VAmPI — Уязвимый REST API с уязвимостями из OWASP Top 10 для тестирования безопасности | Kitploit
Инструменты/GitHubGitHub/erev0s/vampi
Сканеры веб-уязвимостейАнализ уязвимостейТестирование безопасности APIОбучение и ОбразованиеЛаборатории и Практика
GitHuberev0s/vampi

VAmPI

Уязвимый REST API с уязвимостями из OWASP Top 10 для тестирования безопасности

Репозиторий
1.3k5804 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

VAmPI

Уязвимый API (Основано на OpenAPI 3) vampi

Docker Image CI Docker Pulls

VAmPI — это уязвимый API, созданный с помощью Flask, и он включает уязвимости из списка OWASP Top 10 для API. Он был создан, потому что мне нужен был уязвимый API для оценки эффективности инструментов, используемых для обнаружения проблем безопасности в API. Он имеет переключатель включения/выключения, позволяющий сделать API уязвимым или нет во время тестирования. Это позволяет лучше охватить случаи ложных срабатываний/пропусков. VAmPI также можно использовать в учебных/обучающих целях. Более подробную информацию об уязвимостях можно найти на erev0s.com.

Возможности

  • Основано на уязвимостях OWASP Top 10 для API.
  • Включены спецификации OpenAPI3 и коллекция Postman.
  • Глобальный переключатель включения/выключения для уязвимой среды.
  • Аутентификация на основе токенов (настройка времени жизни из app.py)
  • Доступен Swagger UI для прямого взаимодействия с API

Поток действий VAmPI выглядит следующим образом: незарегистрированный пользователь может видеть минимальную информацию о фиктивных пользователях, включенных в API. Пользователь может зарегистрироваться, а затем войти в систему, чтобы получить возможность использовать токен, полученный при входе, для добавления книги. Для добавляемой книги принимаются данные: название и секрет об этой книге. Каждая книга уникальна для каждого пользователя, и только владелец книги должен иметь возможность просмотреть секрет.

Краткий обзор включенных действий представлен в следующей таблице:

Для получения более подробной информации вы можете либо запустить VAmPI и перейти по адресу http://127.0.0.1:5000/ui/, либо использовать сервис, такой как swagger editor, указав спецификацию OpenAPI, которую можно найти в каталоге openapi_specs.

Список уязвимостей

  • SQLi Injection
  • Несанкционированное изменение пароля
  • Нарушение авторизации на уровне объекта
  • Массовое присваивание
  • Чрезмерное раскрытие данных через отладочную конечную точку
  • Перебор пользователей и паролей
  • RegexDOS (Отказ в обслуживании)
  • Недостаток ресурсов и ограничение скорости
  • Обход аутентификации JWT через слабый ключ подписи

Запуск

Это приложение Flask, поэтому для его запуска вы можете установить все зависимости, а затем запустить app.py. Чтобы установить все зависимости, просто выполните pip3 install -r requirements.txt, а затем python3 app.py.

Или, если предпочитаете, вы также можете запустить его через Docker или Docker Compose.

Запуск через Docker

  • Доступен в Dockerhub
root@kitploit:~
docker run -p 5000:5000 erev0s/vampi:latest

[Примечание: если вы запускаете Docker на новых версиях macOS, используйте -p 5001:5000, чтобы избежать конфликта со службой AirPlay Receiver. В качестве альтернативы вы можете отключить службу AirPlay Receiver в Системных настройках -> Общий доступ.]

Запуск через Docker Compose

docker-compose содержит два экземпляра: один с безопасной конфигурацией на порту 5001 и другой с небезопасной на порту 5002:

root@kitploit:~
docker-compose up -d

Доступен Swagger UI 🚀

Перейдите по пути /ui там, где вы запустили API, и будет доступен Swagger UI, который поможет вам начать работу!

root@kitploit:~
http://127.0.0.1:5000/ui/

Настройка тайм-аута токена и уязвимой среды

Если вы хотите изменить время ожидания токена, созданного после входа, или изменить среду, чтобы она не была уязвимой, то вы можете использовать несколько способов в зависимости от того, как вы запускаете приложение.

  • Если вы запускаете его обычным способом с помощью python3 app.py, то все, что вам нужно сделать, это отредактировать переменные alive и vuln, определенные в самом app.py. Переменная alive измеряется в секундах, поэтому если установить 100, то токен истечет через 100 секунд. Переменная vuln работает как логическое значение: если установить 1, приложение уязвимо, а если 0 — не уязвимо.
  • Если вы запускаете его через Docker, то вы должны либо передать переменные окружения в команду docker run, либо отредактировать Dockerfile и пересобрать образ.
    • Docker run example: docker run -d -e vulnerable=0 -e tokentimetolive=300 -p 5000:5000 erev0s/vampi:latest

      • Одной из удобных особенностей такого запуска является возможность запустить второй контейнер с на другом порту и легко переключаться между ними.

Часто задаваемые вопросы

  • Возникает ошибка базы данных при обращении к конечным точкам!
    • Убедитесь, что вы отправили запрос к конечной точке /createdb, чтобы заполнить базу данных.

Изображение от freepik - www.freepik.com

Скачать инструмент
ДействиеПутьОписание
GET/createdbСоздает и заполняет базу данных фиктивными данными
GET/Главная VAmPI
GET/meОтображает пользователя, который вошел в систему
GET/users/v1Отображает всех пользователей с основной информацией
GET/users/v1/_debugОтображает все детали для всех пользователей
POST/users/v1/registerЗарегистрировать нового пользователя
POST/users/v1/loginВойти в VAmPI
GET/users/v1/{username}Отображает пользователя по имени пользователя
DELETE/users/v1/{username}Удаляет пользователя по имени пользователя (только для администраторов)
PUT/users/v1/{username}/emailОбновить email пользователя
PUT/users/v1/{username}/passwordОбновить пароль пользователя
GET/books/v1Получает все книги
POST/books/v1Добавить новую книгу
GET/books/v1/{book}Получает книгу по названию вместе с секретом
vulnerable=1
  • В Dockerfile вы найдете две устанавливаемые переменные окружения: ENV vulnerable=1 и ENV tokentimetolive=60. Вы можете изменить их перед выполнением команды docker build.