輔仁大學應用美術系工讀打卡系統 SQL Injection(未授權,login 與 signup 雙注入點,可讀取整個資料庫) - HITCON ZeroDay

Vulnerability Detail Report

Vulnerability Overview

  • ZDID: ZD-2026-00868
  •  發信 Vendor: 輔仁大學學校財團法人輔仁大學
  • Title: 輔仁大學應用美術系工讀打卡系統 SQL Injection(未授權,login 與 signup 雙注入點,可讀取整個資料庫)
  • Introduction: 應用美術系工讀打卡系統的 login_verify.php 與 signup.php 皆將使用者輸入直接拼接進 SQL 查詢,未授權即可進行 error-based 注入讀取整個資料庫;登入端點更於 HTML 回應中直接印出完整 SQL 查詢。

處理狀態

目前狀態

公開
Last Update : 2026/08/14
  • 新提交
  • 已審核
  • 已通報
  • 已修補
  • 未複測
  • 公開

處理歷程

  • 2026/06/23 10:59:51 : 新提交 (由 Ethan Yang 更新此狀態)
  • 2026/06/25 16:42:26 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/23 15:56:22 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/23 15:56:22 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/07/23 15:56:22 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
  • 2026/08/06 09:41:21 : 已修補 (由 組織帳號 更新此狀態)
  • 2026/08/14 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)

詳細資料

  • ZDID:ZD-2026-00868
  • 通報者:yangminchun (Ethan Yang)
  • 風險:嚴重
  • 類型:資料庫注入攻擊 (SQL Injection)

參考資料

攻擊者可利用該漏洞取得後端資料庫權限及完整資料(包含大量使用者個資或敏感性資料),同時也有機會對資料進行破壞或修改。

漏洞說明: OWASP - SQL Injection
https://www.owasp.org/index.php/SQL_Injection

漏洞說明: OWASP - Top 10 - 2017 A1 - Injection
https://www.owasp.org/index.php/Top_10-2017_A1-Injection

漏洞說明: CWE-89: Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')
https://cwe.mitre.org/data/definitions/89.html

防護方式: OWASP - SQL Injection Prevention Cheat Sheet
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)

相關網址

https://aart1.fju.edu.tw/attend/login_verify.php
https://aart1.fju.edu.tw/attend/signup.php

敘述

摘要

登入端點 POST /attend/login_verify.php 與註冊端點 POST /attend/signup.php 皆將使用者輸入直接拼接進 SQL 查詢,未使用參數化。登入端點更在 HTML 回應中直接印出完整 SQL 查詢字串。未授權即可進行 error-based 注入,確認可完整讀取資料庫。

重現步驟

1. SQL 查詢外洩(login)

userid=admin&pw=test&action=login 送出,回應中夾帶完整查詢:

<font color=white>SELECT * FROM account WHERE username='admin'</font>

查詢被以白色字隱藏於頁面,但原始碼可見,直接暴露資料表結構與拼接方式。

2. Error-Based 萃取(login)

Payload(userid 欄位):
' AND extractvalue(1,concat(0x7e,database(),0x7e))-- -
回應:XPATH syntax error: '~attend~',於錯誤訊息中帶出資料庫名稱。
以相同手法確認:database()attendversion()5.5.68-MariaDBuser()attend@localhost,資料庫含 accountdayrecord 三個資料表。

3. INSERT 注入點(signup)

id=test'user&...&action=add&mode=newaccount 送出,回應拋出 MariaDB 語法錯誤:
...near 'user','...','TestUser')' at line 1
證明註冊流程的 INSERT 語句同樣存在注入點(本報告僅觸發語法錯誤證明,未實際寫入任何資料)。

影響範圍

  • 當前資料庫 attend,含工讀生帳號(account)、打卡日期(day)、打卡紀錄(record)。
  • 注入點具完整讀取能力,理論上整庫(含帳密與打卡個資)皆可被未授權讀取
  • 密碼以未加鹽 MD5 儲存,一旦外洩可被快速還原。

發現

  • 整套環境均已 End-of-Life:PHP 5.4.16、Apache 2.4.6、MariaDB 5.5.68,自身即帶大量已知漏洞。
  • 兩端點皆無速率限制、無 CAPTCHA。
  • 登入查詢字串外洩本身即為資訊洩漏問題。

根因

login 與 signup 端點皆以字串拼接組裝 SQL,未使用 prepared statement。

修補建議

1. 所有查詢改用參數化(prepared statement / 綁定參數),勿字串拼接。
2. 移除回應中印出 SQL 查詢的除錯程式碼。
3. 關閉對外的詳細 SQL 錯誤訊息,改寫入內部 log。
4. 密碼改用 password_hash()(bcrypt/argon2)加鹽,淘汰 MD5。
5. 升級或汰換 EOL 的 PHP / Apache / MariaDB。
6. 登入與註冊端點加入速率限制與 CAPTCHA。
7. 因資料庫曾可被未授權讀取,建議評估通知受影響工讀生並要求重設密碼。

擷圖

留言討論

聯絡組織

 發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。
;