概述
登錄邏輯
系統(tǒng)開放3012、12017兩個端口,前者為身份認證接口,以json形式返回token與權限參數,后者為業(yè)務系統(tǒng),前端調用js-aes對json加密得到cookie
漏洞成因
業(yè)務系統(tǒng)與接口彼此獨立,僅驗證token真實性,未檢測cookie完整性,攻擊者能解密cookie則可修改參數實現越權,而系統(tǒng)采用不安全的前端加密,導致漏洞產生
過程
js信息泄露
settingService.js,泄露aes密鑰 1234567812345678 與偏移向量 1234567812345678

漏洞驗證
對cookie解密得到json數據流

發(fā)現role等關鍵參數,默認1為真

使用全0與全1測試,驗證漏洞存在


其他
登錄名受cookie控制

寫入js彈窗,可行

復測
已修復后端驗證邏輯,但前端AES加密過程依然可見 Ctrl+shift+f 全文搜索 encrypt , login.min.js 文件中發(fā)現 key 與 iv


修復思路
前端:
- 使用對稱加密方法,避免明文存放關鍵數據,提高數據獲取門檻
- 采用非對稱加密方式,前端使用公鑰對數據加密,后端使用私鑰對數據解密
后端:
- 驗證數據完整性
作者:Ainrm
轉載自:https://xz.aliyun.com/t/8022