
Сканер и тестер уязвимости CVE-2025-11001 в 7-zip
Впечатляющее интерактивное веб-приложение, которое демонстрирует и помогает обнаруживать критическую уязвимость CVE-2023-52169 (обход пути через симлинки) в архивах 7-Zip.
../, ..\\)/, C:\\)Клонируйте репозиторий
git clone <repository-url>
cd Se7enSlip
Установите зависимости
npm install
Запустите сервер разработки
npm start
Откройте браузер
Перейдите по адресу http://localhost:3000
# Разработка с автоперезагрузкой
npm run dev
# Создание тестового уязвимого ZIP-файла
npm run create-test-zip
# Продакшен-сборка
npm run build
Уязвимость позволяет злоумышленникам создавать вредоносные ZIP-архивы, которые при извлечении уязвимыми версиями 7-Zip могут записывать файлы за пределами целевой директории извлечения. Это достигается через:
../ для выхода из папки извлечения┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
│ Вредоносный ZIP│───▶│ Уязвимый 7-Zip │───▶│ Компрометация │
│ │ │ < v23.01 │ │ системы │
│ • ../../../etc/ │ │ │ │ • Перезапись │
│ • /tmp/evil.sh │ │ Не проверяет │ │ файлов │
│ • Симлинки │ │ пути извлечения│ │ • Выполнение │
│ │ │ │ │ кода │
└─────────────────┘ └─────────────────┘ └─────────────────┘
POST /api/scanЗагрузка и сканирование ZIP-файла на наличие уязвимостей.
Запрос: Данные multipart-формы с полем zipfile
Ответ:
{
"filename": "test.zip",
"totalEntries": 10,
"suspicious": [...],
"riskLevel": "HIGH",
"recommendations": [...],
"metadata": {
"totalSize": 12345,
"suspiciousPatterns": {...}
}
}
GET /api/vulnerability-infoПолучение подробной информации о CVE-2023-52169.
Ответ:
{
"cve": "CVE-2023-52169",
"cvssScore": 7.8,
"downloadUrl": "https://www.7-zip.org/download.html",
"references": [...]
}
POST /api/create-test-zipГенерация тестового ZIP-файла, содержащего различные паттерны уязвимостей.
Ответ: Загрузка ZIP-файла с вредоносными записями для тестирования
public/css/
├── styles.css # Основная таблица стилей с CSS-переменными
├── animations/ # Ключевые кадры анимаций и переходы
├── components/ # Стили компонентов
└── responsive/ # Медиа-запросы и адаптивный дизайн
:root {
--primary: #00ff88; /* Неоново-зелёный */
--secondary: #ff4757; /* Опасный красный */
--accent: #3742fa; /* Электрический синий */
--bg-primary: #0a0a0a; /* Глубокий чёрный */
--text-primary: #ffffff; /* Чисто белый */
}
PORT=3000 # Порт сервера
NODE_ENV=production # Режим окружения
UPLOAD_LIMIT=52428800 # Лимит размера файла (50 МБ)
RATE_LIMIT_WINDOW=900000 # Окно ограничения запросов (15 мин)
RATE_LIMIT_MAX=50 # Максимум запросов за окно
Приложение включает несколько уровней безопасности:
// Политика безопасности контента
helmet({
contentSecurityPolicy: {
directives: {
defaultSrc: ["'self'"],
styleSrc: ["'self'", "'unsafe-inline'"],
// ... дополнительные директивы
}
}
})
# Создание тестового ZIP с уязвимостями
npm run create-test-zip
# Сгенерированный файл будет содержать:
# - Записи обхода пути (../)
# - Абсолютные пути (/tmp/, C:\)
# - Записи симлинков
# - Длинные имена путей
# - Исполняемые файлы
NODE_ENV=productionFROM node:18-alpine
WORKDIR /app
COPY package*.json ./
RUN npm ci --only=production
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]
version: '3.8'
services:
se7enslip:
build: .
ports:
- "3000:3000"
environment:
- NODE_ENV=production
volumes:
- ./uploads:/app/uploads
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)Этот проект лицензирован под MIT License - подробности см. в файле LICENSE.
Только для образовательных целей: Этот инструмент предназначен для исследований и обучения в области безопасности. Сгенерированные тестовые ZIP-файлы содержат имитированные вредоносные паттерны для демонстрационных целей. Не используйте этот инструмент для вредоносной деятельности. Всегда убедитесь, что у вас есть надлежащее разрешение перед тестированием инструментов безопасности.
🔒 Оставайтесь в безопасности, оставайтесь в курсе
Скачать последнюю версию 7-Zip | Сообщить о проблемах | Контакт по безопасности