当前位置: 首页 > news >正文

Session攻击

Session攻击

  • Session攻击简介
    • 主要攻击方式
      • 会话预测
      • 会话劫持
        • 中间人攻击
      • 会话固定

Session攻击简介

Session对于Web应用是最重要的,也是最复杂的。对于Web应用程序来说,加强安全性的首要原则就是:不要信任来自客户端的数据,一定要进行数据验证以及过滤,才能在程序中使用,再保存到数据层。然而,为了维持来目同一个用尸的个同请X之同的状态,客户端必须要给服务器端发送一个唯一的身竹你以付(B工H大 的)大飞维持状这和前面提到的安全原则是矛盾的,但是没有办法,http协议是无状态的,为了维持状态,我们别无选择。由此可以看出,Web应用程序中最脆弱的环节就是session,因为服务器端是通过来自客户端的一个身份标识来认证用户的, 所以session是Web应用程序中最需要加强安全性的环节。

主要攻击方式

基于session的攻击有很多种方式。大部分的手段都是首先通过捕获或者固定合法用户的session,然后冒充该用户来访问系统。也就是说,攻击者至少必须要获取到一个有效的session标识符,用于接下来的身份验证。
攻击者至少可以通过以下三种方式来获取一个有效的session标识符:

  1. 预测
  2. 捕获(劫持)固定
  3. 固定

会话预测

会话预测这种方式需要攻击者猜测出系统中使用的有效的session标识符(PHP中格式为PHPSESSID=1234),类似暴力破解。
目前会话预测这种攻击方式基本上不太可能成功,因为:

  1. PHP生成随机的session id往往是极其复杂的并且难于被预测出来
  2. 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应用是最重要的&#xff0c;也是最复杂的。对于Web应用程序来说&#xff0c;加强安全性的首要原则就是:不要信任来自客户端的数据&#xff0c;一定要进行数据验证以及…...

【Linux】Shell详解

&#x1f60a;&#x1f60a;作者简介&#x1f60a;&#x1f60a; &#xff1a; 大家好&#xff0c;我是南瓜籽&#xff0c;一个在校大二学生&#xff0c;我将会持续分享Java相关知识。 &#x1f389;&#x1f389;个人主页&#x1f389;&#x1f389; &#xff1a; 南瓜籽的主页…...

汉字找不同隐私协议

本隐私信息保护政策版本&#xff1a;2021 V1 一、重要提示 请您&#xff08;以下亦称“用户”&#xff09;在使用本平台App时仔细阅读本协议之全部条款&#xff0c;并确认您已完全理解本协议之规定&#xff0c;尤其是涉及您的重大权益及义务的加粗或划线条款。如您对协议有任…...

CEC2017:斑马优化算法(Zebra Optimization Algorithm,ZOA)求解cec2017(提供MATLAB代码)

一、斑马优化算法 斑马优化算法&#xff08;Zebra Optimization Algorithm&#xff0c;ZOA&#xff09;Eva Trojovsk等人于2022年提出&#xff0c;其模拟斑马的觅食和对捕食者攻击的防御行为。 斑马因身上有起保护作用的斑纹而得名。没有任何动物比斑马的皮毛更与众不同。斑…...

【Linux要笑着学】进程创建 | 进程终止 | slab分派器

爆笑教程《看表情包学Linux》&#x1f448; 猛戳订阅&#xff01;​​​​​​​​​​​​&#x1f4ad; 写在前面&#xff1a;本章我们主要讲解进程的创建与终止。首先讲解进程创建&#xff0c;fork 函数是我们早在讲解 "进程的概念" 章节就提到过的一个函数&#…...

数据资产管理建设思考(二)

关于数据资产管理&#xff0c;近两年是数据治理行业中一个热点话题&#xff0c;当然有我们前面提到的国家的政策支持及方向指引的原因。另一方面我们做数据治理的同行们从学习吸收国外优秀的数据治理理论&#xff0c;进一步在实践中思考如何应用理论&#xff0c;并结合我们国家…...

微软发布多模态版ChatGPT!取名“宇宙一代”

文&#xff5c;CoCo酱Ludwig Wittgenstein曾说过&#xff1a;“我语言的局限&#xff0c;即是我世界的局限”。大型语言模型&#xff08;LLM&#xff09;已成功地作为各种自然语言任务的通用接口&#xff0c;只要我们能够将输入和输出转换为文本&#xff0c;就可以将基于LLM的接…...

【学习笔记】深入理解JVM之对象的实例化

参考尚硅谷JVM 102 - 106 集 首发地址&#xff1a;地址 1、JVM对象的实例化 1.1 对象的创建方式 对象有一下几种创建对象的方式 new Object object new Object();Class的newInstance() Object object Object.class.newInstance();Constructor的newInstance&#xff08…...

IP协议的漏洞及防护措施

文章目录一、TCP/IP协议族二、IP协议三、IP协议的安全问题及防护措施一、TCP/IP协议族 二、IP协议 网际协议&#xff08;Internet Protocol&#xff0c;IP&#xff09;是TCP/IP协议族的核心&#xff0c;也是网际层最重要的协议。 IP数据报由首部和数据两部分组成&#xff1b…...

Linux命令·mkdir

linux mkdir 命令用来创建指定的名称的目录&#xff0c;要求创建目录的用户在当前目录中具有写权限&#xff0c;并且指定的目录名不能是当前目录中已有的目录。1&#xff0e;命令格式&#xff1a;mkdir [选项] 目录...2&#xff0e;命令功能&#xff1a;通过 mkdir 命令可以实现…...

智能家居项目(八)之树莓派+摄像头进行人脸识别

目录 1、编辑Camera.c 2、编辑contrlDevices.h 3、编辑mainPro.c 4、进行编译&#xff1a; 5、运行结果&#xff1a; ./test1 6、项目图片演示 智能家居项目&#xff08;七&#xff09;之Libcurl库与HTTPS协议实现人脸识别_Love小羽的博客-CSDN博客 经过上一篇文章&…...

渗透测试之地基服务篇:无线攻防之钓鱼无线攻击(上)

简介 渗透测试-地基篇 该篇章目的是重新牢固地基&#xff0c;加强每日训练操作的笔记&#xff0c;在记录地基笔记中会有很多跳跃性思维的操作和方式方法&#xff0c;望大家能共同加油学到东西。 请注意 &#xff1a; 本文仅用于技术讨论与研究&#xff0c;对于所有笔记中复现…...

「ABAP」一文带你入门OPEN SQL中的SELECT查询(附超详细案例解析)

&#x1f482;作者简介&#xff1a; THUNDER王&#xff0c;一名热爱财税和SAP ABAP编程以及热爱分享的博主。目前于江西师范大学会计学专业大二本科在读&#xff0c;同时任汉硕云&#xff08;广东&#xff09;科技有限公司ABAP开发顾问。在学习工作中&#xff0c;我通常使用偏后…...

【搞透C语言指针】那年我双手插兜, 不知道指针是我的对手

☃️内容专栏&#xff1a;【C语言】进阶部分 ☃️本文概括&#xff1a; 征服C语言指针&#xff01;一篇文章搞清楚指针的全部要点。 ☃️本文作者&#xff1a;花香碟自来_ ☃️发布时间&#xff1a;2023.3.3 目录 一、字符指针 二、指针数组 三、数组指针 1.数组指针的定义…...

如何从 Android 手机上的 SD 卡恢复已删除的照片

为了扩展手机的存储空间&#xff0c;很多人都会在安卓手机上插入一张SD卡来存储一些大文件&#xff0c;比如电影、照片、视频等。虽然SD卡给我们带来了很大的方便&#xff0c;但我们还是避免不了数据丢失一些事故造成的。您是否正在为 SD 卡上的照片意外丢失而苦恼&#xff1f;…...

01-前端-htmlcss

文章目录HTML&CSS1&#xff0c;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超详细解读(网络详解)

前言 吼吼&#xff01;终于来到了YOLOv5啦&#xff01; 首先&#xff0c;一个热知识&#xff1a;YOLOv5没有发表正式论文哦~ 为什么呢&#xff1f;可能YOLOv5项目的作者Glenn Jocher还在吃帽子吧&#xff0c;hh 目录 前言 一、YOLOv5的网络结构 二、输入端 &#xff08;1…...

从 ChatGPT 爆火回溯 NLP 技术

ChatGPT 火遍了全网&#xff0c;多个话题频频登上热搜。见证了自然语言处理&#xff08;NLP&#xff09;技术的重大突破&#xff0c;体验到通用技术的无限魅力。GPT 模型是一种 NLP 模型&#xff0c;使用多层变换器&#xff08;Transformer&#xff09;来预测下一个单词的概率分…...

面了 6 家大厂,并拿下 5 家 offer,进大厂好像也没有那么困难吧....

前言 二月份的时候因为换工作的缘故&#xff0c;陆续参加了华为、蚂蚁、字节跳动、PDD、百度、Paypal 的社招面试&#xff0c;除了字节跳动流程较长&#xff0c;我主动结束面试以外&#xff0c;其他的都顺利拿到了 Offer。 最近时间稍微宽裕点了&#xff0c;写个面经&#xf…...

四、Spring对IoC的实现

1.IoC 控制反转 控制反转是一种思想。控制反转是为了降低程序耦合度&#xff0c;提高程序扩展力&#xff0c;达到OCP原则&#xff0c;达到DIP原则。控制反转&#xff0c;反转的是什么&#xff1f; 将对象的创建权利交出去&#xff0c;交给第三方容器负责。将对象和对象之间关系…...

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…...

PHP和Node.js哪个更爽?

先说结论&#xff0c;rust完胜。 php&#xff1a;laravel&#xff0c;swoole&#xff0c;webman&#xff0c;最开始在苏宁的时候写了几年php&#xff0c;当时觉得php真的是世界上最好的语言&#xff0c;因为当初活在舒适圈里&#xff0c;不愿意跳出来&#xff0c;就好比当初活在…...

Vue3 + Element Plus + TypeScript中el-transfer穿梭框组件使用详解及示例

使用详解 Element Plus 的 el-transfer 组件是一个强大的穿梭框组件&#xff0c;常用于在两个集合之间进行数据转移&#xff0c;如权限分配、数据选择等场景。下面我将详细介绍其用法并提供一个完整示例。 核心特性与用法 基本属性 v-model&#xff1a;绑定右侧列表的值&…...

CRMEB 框架中 PHP 上传扩展开发:涵盖本地上传及阿里云 OSS、腾讯云 COS、七牛云

目前已有本地上传、阿里云OSS上传、腾讯云COS上传、七牛云上传扩展 扩展入口文件 文件目录 crmeb\services\upload\Upload.php namespace crmeb\services\upload;use crmeb\basic\BaseManager; use think\facade\Config;/*** Class Upload* package crmeb\services\upload* …...

Mysql中select查询语句的执行过程

目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析&#xff08;Parser&#xff09; 2.4、执行sql 1. 预处理&#xff08;Preprocessor&#xff09; 2. 查询优化器&#xff08;Optimizer&#xff09; 3. 执行器…...

人机融合智能 | “人智交互”跨学科新领域

本文系统地提出基于“以人为中心AI(HCAI)”理念的人-人工智能交互(人智交互)这一跨学科新领域及框架,定义人智交互领域的理念、基本理论和关键问题、方法、开发流程和参与团队等,阐述提出人智交互新领域的意义。然后,提出人智交互研究的三种新范式取向以及它们的意义。最后,总结…...

Mysql8 忘记密码重置,以及问题解决

1.使用免密登录 找到配置MySQL文件&#xff0c;我的文件路径是/etc/mysql/my.cnf&#xff0c;有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...

适应性Java用于现代 API:REST、GraphQL 和事件驱动

在快速发展的软件开发领域&#xff0c;REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名&#xff0c;不断适应这些现代范式的需求。随着不断发展的生态系统&#xff0c;Java 在现代 API 方…...

2.3 物理层设备

在这个视频中&#xff0c;我们要学习工作在物理层的两种网络设备&#xff0c;分别是中继器和集线器。首先来看中继器。在计算机网络中两个节点之间&#xff0c;需要通过物理传输媒体或者说物理传输介质进行连接。像同轴电缆、双绞线就是典型的传输介质&#xff0c;假设A节点要给…...

游戏开发中常见的战斗数值英文缩写对照表

游戏开发中常见的战斗数值英文缩写对照表 基础属性&#xff08;Basic Attributes&#xff09; 缩写英文全称中文释义常见使用场景HPHit Points / Health Points生命值角色生存状态MPMana Points / Magic Points魔法值技能释放资源SPStamina Points体力值动作消耗资源APAction…...