安全矩阵

 找回密码
 立即注册
搜索
查看: 3948|回复: 0

一次信息泄露引发的越权

[复制链接]

98

主题

207

帖子

955

积分

高级会员

Rank: 4

积分
955
发表于 2020-7-27 12:34:17 | 显示全部楼层 |阅读模式
本帖最后由 wholesome 于 2020-7-27 12:42 编辑

概述登录逻辑系统开放3012、12017两个端口,前者为身份认证接口,以json形式返回token与权限参数,后者为业务系统,前端调用js-aes对json加密得到cookie
漏洞成因
业务系统与接口彼此独立,仅验证token真实性,未检测cookie完整性,攻击者能解密cookie则可修改参数实现越权,而系统采用不安全的前端加密,导致漏洞产生
过程js信息泄露settingService.js,泄露aes密钥 1234567812345678 与偏移向量 1234567812345678

漏洞验证对cookie解密得到json数据流
​发现role等关键参数,默认1为真
​使用全0与全1测试,验证漏洞存在


其他登录名受cookie控制
​写入js弹窗,可行

复测已修复后端验证逻辑,但前端AES加密过程依然可见 Ctrl+shift+f 全文搜索 encrypt , login.min.js 文件中发现 key 与 iv


修复思路前端:
  • 使用对称加密方法,避免明文存放关键数据,提高数据获取门槛
  • 采用非对称加密方式,前端使用公钥对数据加密,后端使用私钥对数据解密
后端:
  • 验证数据完整性
疑问解答:
1、文中提到的加密不就是对称加密吗,为啥修复思路说建议使用对称加密
2、网站的cookie是在前端生成的吗?那不就可以拿到加密方式伪造了吗?

  • 使用对称加密方法的情况下,建议提高key、iv等关键数据的获取门槛,而不是明文写在js中,这样写更容易理解一点
  • 后端通过token验证身份有效性,cookie中其他数据控制权限,前端即使拿到加密方式但是无法在3012端口获取token,伪造的cookie也是无效的


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-9-20 00:32 , Processed in 0.013044 second(s), 19 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表