请点击上面 一键关注!
内容来源:先知社区
一、概述
1、登录逻辑
系统开放3012、12017两个端口,前者为身份认证接口,以json形式返回token与权限参数,后者为业务系统,前端调用js-aes对json加密得到cookie
2、漏洞成因
业务系统与接口彼此独立,仅验证token真实性,未检测cookie完整性,攻击者能解密cookie则可修改参数实现越权,而系统采用不安全的前端加密,导致漏洞产生
二、过程
1、js信息泄露
settingService.js,泄露aes密钥 1234567812345678 与偏移向量 1234567812345678
2、漏洞验证
对cookie解密得到json数据流
发现role等关键参数,默认1为真
使用全0与全1测试,验证漏洞存在
3、其他
登录名受cookie控制
写入js弹窗,可行
三、复测
已修复后端验证逻辑,但前端AES加密过程依然可见 Ctrl+shift+f
全文搜索 encrypt
, login.min.js
文件中发现 key 与 iv
四、修复思路
前端:
-
使用对称加密方法,避免明文存放关键数据,提高数据获取门槛
-
采用非对称加密方式,前端使用公钥对数据加密,后端使用私钥对数据解密
后端:
-
验证数据完整性
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论