Session攻击
Session攻击
- Session攻击简介
- 主要攻击方式
- 会话预测
- 会话劫持
- 中间人攻击
- 会话固定
Session攻击简介
Session对于Web应用是最重要的,也是最复杂的。对于Web应用程序来说,加强安全性的首要原则就是:不要信任来自客户端的数据,一定要进行数据验证以及过滤,才能在程序中使用,再保存到数据层。然而,为了维持来目同一个用尸的个同请X之同的状态,客户端必须要给服务器端发送一个唯一的身竹你以付(B工H大 的)大飞维持状这和前面提到的安全原则是矛盾的,但是没有办法,http协议是无状态的,为了维持状态,我们别无选择。由此可以看出,Web应用程序中最脆弱的环节就是session,因为服务器端是通过来自客户端的一个身份标识来认证用户的, 所以session是Web应用程序中最需要加强安全性的环节。
主要攻击方式
基于session的攻击有很多种方式。大部分的手段都是首先通过捕获或者固定合法用户的session,然后冒充该用户来访问系统。也就是说,攻击者至少必须要获取到一个有效的session标识符,用于接下来的身份验证。
攻击者至少可以通过以下三种方式来获取一个有效的session标识符:
- 预测
- 捕获(劫持)固定
- 固定
会话预测
会话预测这种方式需要攻击者猜测出系统中使用的有效的session标识符(PHP中格式为PHPSESSID=1234),类似暴力破解。
目前会话预测这种攻击方式基本上不太可能成功,因为:
- PHP生成随机的session id往往是极其复杂的并且难于被预测出来
- PHP生成session字符串无任何规律和顺序
会话劫持
会话预测这种方式需要攻击者猜测出系统中使用的有效的session标识符(PHP中格式为PHPSESSID=1234),类似暴力破解。
目前会话预测这种攻击方式基本上不太可能成功,因为:
1、PHP生成随机的session id往往是极其复杂的并且难于被预测出来
2、PHP生成session字符串无任何规律和顺序
步骤:
1、目标用户需要先登录站点
2、登录成功后,该用户会得到站点提供的一个会话标识SessionlD3、攻击者通过某种攻击手段捕获Session lD
3、攻击者通过捕获到的Session lD访问站点即可获得目标用户合法会话
获取Session ID方式:
1、暴力破解:尝试各种Session lD,直到破解为止
2、预测:如果Session lD使用非随机的方式产生,那么就有可能计算出来窃取
3、使用网络嗅探、XSS攻击等方法获得
对于php来说,其内部Session的实现机制虽然不是很安全,但是关于生成Session ID的环节还是比较安全的,这个随机的Session ID往往是极其复杂的并且难于被预测出来,所以,暴力破解Session ID和预测Session ID的攻击方式基本上是不太可能成功的。
对于窃取Session ID的方式大多使用网络数据通讯层进行攻击获取,可以使用SSL进行防御。
防御方式:
1、更改Session名称: PHP中Session的默认名称是PHPSESSID,此变量会保存在Cookie中,如果攻击者不分析站点,就不能猜到Session名称,可以阻挡部分攻击。
2、关闭透明化Session lD:透明化Session lD指当浏览器中的Http请求没有使用Cookie来存放Session lD时,Session lD则使用URL来传递。
3、设置HttpOnly:通过设置Cookie的HttpOnly为true,可以防止客户端脚本访问这个Cookie,从而有效的防止XSS攻击。
4、关闭所有phpinfo类dump request信息的页面: phpinfo页面会dump出请求信息,其中就包括Cookie信息。
5、验证HTTP头部信息
中间人攻击
中间人攻击(Man-in-the-MiddleAttack,简称“MITM攻击”)是一种通过窃取或篡改通信物理、逻辑链路间接完成攻击行为的网络攻击方法。攻击者与通信的两端分别创建独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,实际上整个会话都被攻击者完全控制。这个被攻击者控制的通信节点就是所谓的“中间人”。
中间人攻击有两种常见形式:
1、基于监听的信息窃取
2、基于监听的身份冒认
中间人攻击难以防御的原因:
1、攻击者在窃听时,一般网络连接仍能正常运行,不会断线,因此很少有人会主动发现
2、受害者电脑上不会被安装木马或恶意软件,难以被杀毒软件发现
3、攻击者在欺骗网络协议时,虽然会留下一些蛛丝马迹,但由于网络设备不会保留太多记录,事后难以追踪
4、绝大多数的网络协议,仍然基于“对方的数据是安全可靠”的假设来运作的,这导致攻击者有太多漏洞可以利用进行欺骗网络设备、伪装成中间人
会话固定
概念:
诱骗受害者使用攻击者指定的会话标识(SessionlD)的攻击手段。
这是攻击者获取合法会话标识的最简单的方法。(让合法用户使用攻击者预先设置的Session ID进行登录,从而使Web不再进行生产新的Session lD,导致攻击者预先设置的Session lD变成了合法桥梁)
会话固定也可以看成是会话劫持的一种类型,因为会话固定攻击的主要目的同样是获得目标用户的合法会话,不过会话固定还可以是强迫受害者使用攻击者设定的一个有效会话,以此来获得用户的敏感信息。
攻击步骤:
1、攻击者通过某种手段重置目标用户的Session lD,然后监听用户会话状态;
2、目标用户携带攻击者设定的Session lD登录站点;
3、攻击者通过Session lD获得合法会话;
接收机制:
早期浏览器存储的session lD容易暴露、使用URL来传送session ID。
首先检查携带cookie是否含有sessionlD;若没有则再检查get、post数据中是否含有,若有则使用此数据;没有才会使系统生成一个session ID发给客户端。
重置方式:
使用客户端脚本来设置Cookie到浏览器
< script> document.cookie=“PHPSESSID=99999”;< /script>这种方式可以使用XSS来达到目的
防御方案:
开启Httponly阻止攻击者读取Cookie、但有少数低版本浏览器存在漏洞,即使设置了HttpOnly,也可以重写Cookie。所以还需要添加其他方式校验,如User-Agent验证,Token校验。
重置Session ID的方式:
使用HTML的< META>标签加Set-Cookie属性。
服务器可以在返回的HTML文档中增加< META>标签来设置Cookie与客户端脚本相比,对< META>标签的处理目前还不能被浏览器禁止
防御手段:
1、每当用户登陆的时候就进行重置Session lD
2、Session lD闲置过久时,进行重置Session lD
3、大部分防止会话劫持的方法对会话固定攻击同样有效。如设置HttpOnly,关闭透明化Session lD,User-Agent验证,Token校验等。
相关文章:
Session攻击
Session攻击Session攻击简介主要攻击方式会话预测会话劫持中间人攻击会话固定Session攻击简介 Session对于Web应用是最重要的,也是最复杂的。对于Web应用程序来说,加强安全性的首要原则就是:不要信任来自客户端的数据,一定要进行数据验证以及…...
【Linux】Shell详解
😊😊作者简介😊😊 : 大家好,我是南瓜籽,一个在校大二学生,我将会持续分享Java相关知识。 🎉🎉个人主页🎉🎉 : 南瓜籽的主页…...
汉字找不同隐私协议
本隐私信息保护政策版本:2021 V1 一、重要提示 请您(以下亦称“用户”)在使用本平台App时仔细阅读本协议之全部条款,并确认您已完全理解本协议之规定,尤其是涉及您的重大权益及义务的加粗或划线条款。如您对协议有任…...
CEC2017:斑马优化算法(Zebra Optimization Algorithm,ZOA)求解cec2017(提供MATLAB代码)
一、斑马优化算法 斑马优化算法(Zebra Optimization Algorithm,ZOA)Eva Trojovsk等人于2022年提出,其模拟斑马的觅食和对捕食者攻击的防御行为。 斑马因身上有起保护作用的斑纹而得名。没有任何动物比斑马的皮毛更与众不同。斑…...
【Linux要笑着学】进程创建 | 进程终止 | slab分派器
爆笑教程《看表情包学Linux》👈 猛戳订阅!💭 写在前面:本章我们主要讲解进程的创建与终止。首先讲解进程创建,fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数&#…...
数据资产管理建设思考(二)
关于数据资产管理,近两年是数据治理行业中一个热点话题,当然有我们前面提到的国家的政策支持及方向指引的原因。另一方面我们做数据治理的同行们从学习吸收国外优秀的数据治理理论,进一步在实践中思考如何应用理论,并结合我们国家…...
微软发布多模态版ChatGPT!取名“宇宙一代”
文|CoCo酱Ludwig Wittgenstein曾说过:“我语言的局限,即是我世界的局限”。大型语言模型(LLM)已成功地作为各种自然语言任务的通用接口,只要我们能够将输入和输出转换为文本,就可以将基于LLM的接…...
【学习笔记】深入理解JVM之对象的实例化
参考尚硅谷JVM 102 - 106 集 首发地址:地址 1、JVM对象的实例化 1.1 对象的创建方式 对象有一下几种创建对象的方式 new Object object new Object();Class的newInstance() Object object Object.class.newInstance();Constructor的newInstance(…...
IP协议的漏洞及防护措施
文章目录一、TCP/IP协议族二、IP协议三、IP协议的安全问题及防护措施一、TCP/IP协议族 二、IP协议 网际协议(Internet Protocol,IP)是TCP/IP协议族的核心,也是网际层最重要的协议。 IP数据报由首部和数据两部分组成;…...
Linux命令·mkdir
linux mkdir 命令用来创建指定的名称的目录,要求创建目录的用户在当前目录中具有写权限,并且指定的目录名不能是当前目录中已有的目录。1.命令格式:mkdir [选项] 目录...2.命令功能:通过 mkdir 命令可以实现…...
智能家居项目(八)之树莓派+摄像头进行人脸识别
目录 1、编辑Camera.c 2、编辑contrlDevices.h 3、编辑mainPro.c 4、进行编译: 5、运行结果: ./test1 6、项目图片演示 智能家居项目(七)之Libcurl库与HTTPS协议实现人脸识别_Love小羽的博客-CSDN博客 经过上一篇文章&…...
渗透测试之地基服务篇:无线攻防之钓鱼无线攻击(上)
简介 渗透测试-地基篇 该篇章目的是重新牢固地基,加强每日训练操作的笔记,在记录地基笔记中会有很多跳跃性思维的操作和方式方法,望大家能共同加油学到东西。 请注意 : 本文仅用于技术讨论与研究,对于所有笔记中复现…...
「ABAP」一文带你入门OPEN SQL中的SELECT查询(附超详细案例解析)
💂作者简介: THUNDER王,一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读,同时任汉硕云(广东)科技有限公司ABAP开发顾问。在学习工作中,我通常使用偏后…...
【搞透C语言指针】那年我双手插兜, 不知道指针是我的对手
☃️内容专栏:【C语言】进阶部分 ☃️本文概括: 征服C语言指针!一篇文章搞清楚指针的全部要点。 ☃️本文作者:花香碟自来_ ☃️发布时间:2023.3.3 目录 一、字符指针 二、指针数组 三、数组指针 1.数组指针的定义…...
如何从 Android 手机上的 SD 卡恢复已删除的照片
为了扩展手机的存储空间,很多人都会在安卓手机上插入一张SD卡来存储一些大文件,比如电影、照片、视频等。虽然SD卡给我们带来了很大的方便,但我们还是避免不了数据丢失一些事故造成的。您是否正在为 SD 卡上的照片意外丢失而苦恼?…...
01-前端-htmlcss
文章目录HTML&CSS1,HTML1.1 介绍1.2 快速入门1.3 基础标签1.3.1 标题标签1.3.2 hr标签1.3.3 字体标签1.3.4 换行标签1.3.5 段落标签1.3.6 加粗、斜体、下划线标签1.3.7 居中标签1.3.8 案例1.4 图片、音频、视频标签1.5 超链接标签1.6 列表标签1.7 表格标签1.8 布…...
【YOLO系列】YOLOv5超详细解读(网络详解)
前言 吼吼!终于来到了YOLOv5啦! 首先,一个热知识:YOLOv5没有发表正式论文哦~ 为什么呢?可能YOLOv5项目的作者Glenn Jocher还在吃帽子吧,hh 目录 前言 一、YOLOv5的网络结构 二、输入端 (1…...
从 ChatGPT 爆火回溯 NLP 技术
ChatGPT 火遍了全网,多个话题频频登上热搜。见证了自然语言处理(NLP)技术的重大突破,体验到通用技术的无限魅力。GPT 模型是一种 NLP 模型,使用多层变换器(Transformer)来预测下一个单词的概率分…...
面了 6 家大厂,并拿下 5 家 offer,进大厂好像也没有那么困难吧....
前言 二月份的时候因为换工作的缘故,陆续参加了华为、蚂蚁、字节跳动、PDD、百度、Paypal 的社招面试,除了字节跳动流程较长,我主动结束面试以外,其他的都顺利拿到了 Offer。 最近时间稍微宽裕点了,写个面经…...
四、Spring对IoC的实现
1.IoC 控制反转 控制反转是一种思想。控制反转是为了降低程序耦合度,提高程序扩展力,达到OCP原则,达到DIP原则。控制反转,反转的是什么? 将对象的创建权利交出去,交给第三方容器负责。将对象和对象之间关系…...
MPNet:旋转机械轻量化故障诊断模型详解python代码复现
目录 一、问题背景与挑战 二、MPNet核心架构 2.1 多分支特征融合模块(MBFM) 2.2 残差注意力金字塔模块(RAPM) 2.2.1 空间金字塔注意力(SPA) 2.2.2 金字塔残差块(PRBlock) 2.3 分类器设计 三、关键技术突破 3.1 多尺度特征融合 3.2 轻量化设计策略 3.3 抗噪声…...
【Linux】shell脚本忽略错误继续执行
在 shell 脚本中,可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行,可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令,并忽略错误 rm somefile…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
visual studio 2022更改主题为深色
visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中,选择 环境 -> 常规 ,将其中的颜色主题改成深色 点击确定,更改完成...
1688商品列表API与其他数据源的对接思路
将1688商品列表API与其他数据源对接时,需结合业务场景设计数据流转链路,重点关注数据格式兼容性、接口调用频率控制及数据一致性维护。以下是具体对接思路及关键技术点: 一、核心对接场景与目标 商品数据同步 场景:将1688商品信息…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
【C++】纯虚函数类外可以写实现吗?
1. 答案 先说答案,可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...
