漏洞:会话固定攻击(session fixation attack)

简介: 什么是会话固定攻击?会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话以成功冒充他人,造成会话固定攻击。

什么是会话固定攻击?

会话固定攻击(session fixation attack)是利用应用系统在服务器的会话ID固定不变机制,借助他人用相同的会话ID获取认证和授权,然后利用该会话ID劫持他人的会话以成功冒充他人,造成会话固定攻击。


看下面Session Fixation攻击的一个简单例子:


整个攻击流程是:


1、攻击者Attacker能正常访问该应用网站;


2、应用网站服务器返回一个会话ID给他;


3、攻击者Attacker用该会话ID构造一个该网站链接发给受害者Victim;


4-5、受害者Victim点击该链接,携带攻击者的会话ID和用户名密码正常登录了该网站,会话成功建立;


6、攻击者Attacker用该会话ID成功冒充并劫持了受害者Victim的会话。


更多攻击例子参考:https://www.owasp.org/index.php/Session_fixation


攻击分析

攻击的整个过程,会话ID是没变过的,所以导致此漏洞。


攻击修复

1、登录重建会话


每次登录后都重置会话ID,并生成一个新的会话ID,这样攻击者就无法用自己的会话ID来劫持会话,核心代码如下。

// 会话失效
session.invalidate();
// 会话重建
session=request.getSession(true);

2、禁用客户端访问Cookie


此方法也避免了配合XSS攻击来获取Cookie中的会话信息以达成会话固定攻击。在Http响应头中启用HttpOnly属性,或者在tomcat容器中配置。关于HttpOnly更多详细说明大家可以自行百度。


道高一尺,魔高一丈。目前我们已经对全线系统及时填补了该漏洞,以免给攻击者留下突破口。


相关文章
|
10月前
|
数据采集 JSON 监控
速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)
以下是使用 Python 调用速卖通商品列表接口(以 AliExpress Affiliate 商品查询 API 为例)的代码示例。该示例包含准备基础参数、生成签名、发送请求和处理响应等关键步骤,并附有详细注释说明。代码展示了如何通过公共参数和业务参数构建请求,使用 HMAC-SHA256 加密生成签名,确保请求的安全性。最后,解析 JSON 响应并输出商品信息。此接口适用于商品监控、数据采集与分析及商品推荐等场景。注意需通过 OAuth2.0 获取 `access_token`,并根据官方文档调整参数和频率限制。
|
Ubuntu 安全 Docker
【DevOps】Docker 最佳实践指南(绝对干货)
祝您的 Docker 之旅一切顺利!
565 4
|
监控 供应链 数据安全/隐私保护
ERP系统中的库存周转率优化与管理解析
【7月更文挑战第25天】 ERP系统中的库存周转率优化与管理解析
752 0
|
存储 安全
Cookie会话跟踪的原理
会话跟踪技术包括Cookie和Session。Cookie是客户端技术,首次访问时服务器通过Set-Cookie响应头发送Cookie,浏览器保存并在后续请求中通过Cookie请求头回传,实现会话跟踪。但Cookie易被用户修改或禁用,安全性较低。Session则是服务器端技术,每次会话生成唯一的Session ID,通过Cookie传递给客户端,客户端在后续请求中携带此ID,服务器据此识别会话。Session更安全,但在集群环境中需解决会话共享问题。
342 1
|
机器学习/深度学习 安全 API
爱回收平台技术揭秘:构建高效、安全、用户友好的二手物品回收生态系统
爱回收利用微服务架构打造高效安全的二手电子回收平台。系统通过API Gateway处理前端请求,各微服务独立处理业务逻辑,如商品评估、订单创建和支付结算,采用机器学习算法预估价格。安全策略包括OAuth2.0授权、数据加密、访问控制和DDoS防护。性能优化涉及缓存、负载均衡及数据库优化,提供便捷、透明的服务,促进可持续发展。
712 1
|
机器学习/深度学习 Ubuntu KVM
ubuntu启动emulator : /dev/kvm is not found: VT disabled in BIOS or KVM kernel module not loaded
本文记录了解决AOSP模拟器无法启动的问题,原因是微星B450M主板BIOS中虚拟化技术未开启,通过安装KVM模块并修改BIOS设置以启用SVM模式来解决。
634 0
ubuntu启动emulator : /dev/kvm is not found: VT disabled in BIOS or KVM kernel module not loaded
|
JavaScript API 数据安全/隐私保护
Vue3水印(Watermark)
这是一个基于Vue.js的水印组件库,提供了丰富的自定义选项,包括水印的布局、旋转角度、间距等。组件支持文字和图片水印,并可通过API调整样式和位置。
991 0
Vue3水印(Watermark)
|
存储 安全 Ubuntu
Linux入门创建一个快捷方式
Linux入门创建一个快捷方式
1000 0
Linux入门创建一个快捷方式
|
存储 运维 定位技术
恢复点目标(Recovery Point Objective,简称RPO)
恢复点目标(Recovery Point Objective,简称RPO)
1920 3
|
Web App开发 应用服务中间件 nginx