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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2024-40275_Scanner — Сканер для CVE-2024-40725 — раскрытие исходного кода Apache HTTP Server; зондирует прямые пути и пути подзапросов, идентифицирует затронутые версии и выводит JSON-отчёты для CI/CD. | Kitploit
Инструменты/GitHubGitHub/burjoy/cve-2024-40275_scanner
Сканеры уязвимостейСканеры веб-уязвимостейАнализ уязвимостейВеб-безопасностьНеправильная Конфигурация
GitHubburjoy/cve-2024-40275_scanner

CVE-2024-40275_Scanner

Сканер для CVE-2024-40725 — раскрытие исходного кода Apache HTTP Server; зондирует прямые пути и пути подзапросов, идентифицирует затронутые версии и выводит JSON-отчёты для CI/CD.

Репозиторий
623 дней назадЕщё не проверено

Популярное

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

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

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

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

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

Сканер CVE-2024-40725

Инструмент обнаружения на Python для CVE-2024-40725 — уязвимости раскрытия исходного кода в Apache HTTP Server, затрагивающей версии 2.4.0 и 2.4.61.

Правовое уведомление: Запускайте этот сканер только против серверов, которыми вы владеете или на тестирование которых имеете явное письменное разрешение. Несанкционированное использование может нарушать законы о компьютерных преступлениях (например, CFAA, Computer Misuse Act).


Общие сведения

CVE-2024-40725 — это регрессия во внутреннем конвейере обработки запросов Apache, появившаяся в версии 2.4.0 (как неполное исправление для CVE-2024-39884). Когда сервер настроен с использованием устаревших директив AddType (например, AddType application/x-httpd-php .php), внутреннее назначение обработчика Apache молча теряется во время обработки подзапроса (вызываемого DirectoryIndex, mod_rewrite или mod_dir).

В результате интерпретатор PHP-скриптов никогда не вызывается. Вместо этого встроенный default-handler Apache открывает файл с диска и передаёт его сырые байты, включая учётные данные базы данных, ключи API и логику приложения, напрямую клиенту.

Затронутые версии: Apache httpd 2.4.0 – 2.4.61
Исправлено в: Apache httpd 2.4.62+


Требования

  • Python 3.8+
  • Библиотека requests
root@kitploit:~
pip install requests

Установка

root@kitploit:~
# Клонируйте или скачайте сканер
curl -O https://your-host/cve_2024_40725_scanner.py

# Сделать исполняемым (необязательно)
chmod +x cve_2024_40725_scanner.py

Использование

root@kitploit:~
python3 cve_2024_40725_scanner.py --target <URL> [ОПЦИИ]

Параметры

ФлагТипПо умолчаниюОписание
--targetURL(обязательно)Базовый URL тестируемого сервера Apache
--pathsPATH [PATH ...]встроенный списокОдин или несколько путей PHP для прямой проверки
--wordlistFILE—Путь к файлу списка слов (один путь в строке)
--no-directory-checkфлагвыкл.Пропустить проверку подзапроса/индекса каталога (Проба B)
--timeoutint (секунды)10Таймаут на запрос
--delayfloat (секунды)0.0Задержка между запросами (ограничение частоты)
--no-verify-sslфлагвыкл.Отключить проверку SSL-сертификата
--outputFILE—Записать полный отчёт в формате JSON в этот файл
--verboseфлагвыкл.Включить отладочный вывод

Примеры

root@kitploit:~
# Быстрый старт: сканирование localhost со встроенными путями по умолчанию
python3 cve_2024_40725_scanner.py --target http://localhost

# Сканирование конкретных путей
python3 cve_2024_40725_scanner.py \
  --target http://192.168.1.10 \
  --paths /index.php /admin/config.php /wp-config.php

# Использование файла списка слов
python3 cve_2024_40725_scanner.py \
  --target http://192.168.1.10 \
  --wordlist php_paths.txt

# Комбинация списка слов + дополнительных путей (объединяются, дубликаты удаляются)
python3 cve_2024_40725_scanner.py \
  --target http://192.168.1.10 \
  --wordlist php_paths.txt \
  --paths /extra/secret.php

# HTTPS с самоподписанным сертификатом
python3 cve_2024_40725_scanner.py \
  --target https://myserver.local \
  --no-verify-ssl

# Вежливое сканирование с задержкой 1 секунда и JSON-отчётом
python3 cve_2024_40725_scanner.py \
  --target http://myserver.local \
  --wordlist php_paths.txt \
  --delay 1.0 \
  --output results.json \
  --verbose

# Использование в CI/CD (код выхода 1 = уязвим, 0 = чисто)
python3 cve_2024_40725_scanner.py --target http://localhost || echo "VULNERABLE"

Формат списка слов

Один путь в строке. Строки, начинающиеся с #, считаются комментариями и пропускаются. Пустые строки игнорируются. Начальные слэши нормализуются автоматически.

root@kitploit:~
# Часто встречающиеся точки входа PHP
/index.php
/info.php
/phpinfo.php

# Панели администрирования
/admin/index.php
/admin/config.php

# Файлы CMS
/wp-config.php
/wp-login.php
/configuration.php

# Внутренние элементы API
/api/v1/status.php

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

Сканер выполняет две пробы для каждого пути:

Проба A — Прямой запрос файла

root@kitploit:~
GET /index.php HTTP/1.1

Проверяет, возвращает ли прямой запрос PHP-файла его исходный код. Актуально для неправильно настроенных серверов, где AddType нарушен даже для прямых запросов.

Проба B — Триггер подзапроса (собственно путь CVE)

root@kitploit:~
GET / HTTP/1.1

Запрашивается родительский каталог, а не сам файл. Apache внутренне разрешает DirectoryIndex → index.php, порождая подзапрос. Это тот самый путь выполнения кода, где r->handler устанавливается в NULL в Apache 2.4.0–2.4.61.

Проба B — более важный и реалистичный тест. Многие серверы уязвимы только через путь подзапроса, а не через прямой запрос файла.

Обнаружение утечки

Сканер проверяет тело ответа на сигнатуры исходного кода PHP:

  • <?php
  • <?PHP
  • <?=

При обнаружении совпадения извлекается фрагмент из 150 символов вокруг места утечки для первичного анализа, без вывода всего тела ответа.

Определение версии сервера

Читает заголовок ответа Server: для определения версии Apache. Помечает серверы, сообщающие версию 2.4.0 или 2.4.61, ещё до подтверждённой утечки.

Примечание: Усиленные серверы могут скрывать заголовок Server: (ServerTokens Prod). Сканер в любом случае выполняет все пробы.


Вывод

Пример вывода в терминал

root@kitploit:~
============================================================
  CVE-2024-40725 -- Apache Source Code Disclosure Scanner
============================================================
  Target : http://localhost
  Paths  : 6
  Time   : 2024-08-01T12:00:00

  [*] Fingerprinting server: http://localhost
      Server Header : Apache/2.4.61 (Debian)
      Apache Version: 2.4.61
      [!] Version is in vulnerable range (2.4.0 - 2.4.61)

  [*] Testing 6 path(s)...

  --- /index.php
      Direct  (HTTP 200): OK
      Subreq  (HTTP 200): LEAKED
      [!] VULNERABLE via: subrequest (directory index)
         Leaked snippet: '<?php\n$db_pass = "supersecretpassword";'

  --- /info.php
      Direct  (HTTP 404): OK
      Subreq  (HTTP 404): OK
      [+] Safe

============================================================
  SCAN SUMMARY
============================================================
  Target            : http://localhost
  Apache Version    : 2.4.61
  Paths Tested      : 6
  Vulnerable Paths  : 1
  Safe Paths        : 5

  [!] RESULT: VULNERABLE
      Vulnerable paths:
        * /index.php  (trigger: subrequest (directory index))

  Remediation:
    1. Upgrade to Apache httpd >= 2.4.62
    2. Replace 'AddType' with 'SetHandler' in <FilesMatch> blocks
============================================================

Структура JSON-отчёта (--output results.json)

root@kitploit:~
{
  "target": "http://localhost",
  "scan_time": "2024-08-01T12:00:00",
  "apache_version": "2.4.61",
  "apache_in_range": true,
  "paths_tested": 6,
  "vulnerable_paths": [
    {
      "path": "/index.php",
      "direct_url": "http://localhost/index.php",
      "directory_url": "http://localhost/",
      "direct_status": 200,
      "direct_leaked": false,
      "direct_snippet": null,
      "directory_status": 200,
      "directory_leaked": true,
      "directory_snippet": "<?php\n$db_pass = \"supersecretpassword\";",
      "server_header": "Apache/2.4.61 (Debian)",
      "vulnerable": true,
      "trigger": "subrequest (directory index)"
    }
  ],
  "safe_paths": [...]
}

Коды выхода

КодЗначение
0Уязвимые пути не обнаружены
1Обнаружен один или несколько уязвимых путей

Коды выхода делают сканер пригодным для использования в CI/CD-конвейерах и автоматизированных аудитах инфраструктуры.


Устранение уязвимости

Вариант 1: Обновление Apache (рекомендуется)

root@kitploit:~
# Debian / Ubuntu
sudo apt update && sudo apt install apache2

# RHEL / CentOS / AlmaLinux
sudo dnf update httpd

# Проверка версии (должна быть >= 2.4.62)
apache2 -v

Вариант 2: Замена AddType на SetHandler

Замените все директивы AddType, используемые для выполнения PHP:

root@kitploit:~
# ❌ Уязвимые конфигурации
AddType application/x-httpd-php .php

# ✅ Безопасные конфигурации
<FilesMatch "\.php$">
    SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
</FilesMatch>

Справочник: уязвимая и безопасная конфигурации

root@kitploit:~
# УЯЗВИМАЯ
<VirtualHost *:80>
    DocumentRoot /var/www/html
    AddType application/x-httpd-php .php     # ← вызывает CVE
    DirectoryIndex index.php
</VirtualHost>

# БЕЗОПАСНАЯ
<VirtualHost *:80>
    DocumentRoot /var/www/html
    <FilesMatch "\.php$">
        SetHandler "proxy:unix:/run/php/php8.2-fpm.sock|fcgi://localhost"
    </FilesMatch>
    DirectoryIndex index.php
</VirtualHost>

Связанные CVE

CVEВерсияОписание
CVE-2024-398842.4.0Первоначальная регрессия раскрытия исходного кода
CVE-2024-407252.4.61Неполное исправление — тот же класс ошибки
CVE-2024-408982.4.61Отдельный SSRF в mod_rewrite (только Windows)
Скачать инструмент