渗透测试实战 | 一次信息泄露引发的越权

admin 2020年9月9日08:00:50评论382 views字数 536阅读1分47秒阅读模式

请点击上面 渗透测试实战 | 一次信息泄露引发的越权 一键关注!

内容来源:先知社区

渗透测试实战 | 一次信息泄露引发的越权

一、概述

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
渗透测试实战 | 一次信息泄露引发的越权
渗透测试实战 | 一次信息泄露引发的越权


四、修复思路

前端:

  • 使用对称加密方法,避免明文存放关键数据,提高数据获取门槛

  • 采用非对称加密方式,前端使用公钥对数据加密,后端使用私钥对数据解密

后端:

  • 验证数据完整性


渗透测试实战 | 一次信息泄露引发的越权

渗透测试实战 | 一次信息泄露引发的越权渗透测试实战 | 一次信息泄露引发的越权

↑↑↑长按图片识别二维码关註↑↑↑

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2020年9月9日08:00:50
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   渗透测试实战 | 一次信息泄露引发的越权http://cn-sec.com/archives/126238.html

发表评论

匿名网友 填写信息