| タイトル | Kushan2k student-management-system 1.0 SQL Injection |
|---|
| 説明 | The certificate verification endpoint (`GradeController.php`) accepts a `nic` (National Identity Card) number via POST and passes it directly to the `getStatus()` method in `User.php`. That method embeds the input into an SQL query without any parameterisation or escaping:
```php
// config/User.php
$res = $this->db->query("... WHERE student.NIC={$index} OR student.student_id='{$index}' OR registrations.cetificate_no='{$index}'");
```
The resulting student ID is then written to the session and the user is redirected to the mycourse page:
// controllers/GradeController.php
$nic = htmlspecialchars($_POST['nic']);
$id = $user->getStatus($nic);
if($id!=null && $id>0){
$_SESSION['user_id'] = $id;
header("Location:../view/mycourse.view.php",true);
}
An attacker can inject a boolean-based payload (e.g., 0 OR 1=1 --) into the nic parameter. This alters the query to return the first student ID matching the always‑true condition, thereby bypassing the intended certificate verification entirely. The session is then populated with that student’s ID, and the attacker can view that student’s personal information, enrolled courses, and other sensitive data. |
|---|
| ソース | ⚠️ https://github.com/Kushan2k/student-management-system/issues/2 |
|---|
| ユーザー | ChenI (UID 98309) |
|---|
| 送信 | 2026年05月20日 08:23 (20 日 ago) |
|---|
| モデレーション | 2026年06月07日 11:38 (18 days later) |
|---|
| ステータス | 承諾済み |
|---|
| VulDBエントリ | 369095 [Kushan2k student-management-system 迄 f16a4ceaddd6729c4b306ed4641cda3176c1ef2a Certificate Verification Endpoint GradeController.php getStatus nic SQLインジェクション] |
|---|
| ポイント | 20 |
|---|