首页 > 数据库 >会话管理机制&SQL注入攻击

会话管理机制&SQL注入攻击

时间:2023-04-06 20:11:23浏览次数:38  
标签:令牌 管理机制 应用程序 用户 会话 SQL 攻击者

会话管理机制

  1.绝大多数Web应用程序中,会话管理机制是一个基本的安全组件

  2.会话管理在应用程序执行登录功能时显得特别重要

  3.因为,它可再用户通过请求提交他们的证书后,持续向应用程序保证任何特定用户身份的真实性

  4.由于会话管理机制所发挥的关键作用,他们成为针对应用程序的恶意攻击的主要目标

  5.若攻击者能够破坏应用程序的会话管理,他就能轻易避开其实施的验证机制吗,不需用户证书即可伪装成其他应用程序用户

  6.如果攻击者以这种方式攻破一个管理用户, 那么他就能够控制整个应用程序

 

会话管理概述

 

 

会话令牌生成漏洞

  1.一些会话令牌通过用户的用户名或电子邮件地址转换而来,或者使用与其相关的其他信息创建

  2.这些信息可以某种方式进行编码或模糊处理,也可与其他数据结合在一起

  3.生成随机数据度不足

  4.计算机中的数据极少完全随机

  5.因此,如果由于某种原因需要随机数据,一般通过软件使用各种技巧生成伪随机数字

  6.使用的一些算法生成看似随机并且在可能的数值范围内平均分布的序列

 

 

令牌可预测

  1.一些会话令牌并不包含与某个特殊用户有关的任何有意义的数据,但由于它们包含某种顺序或模式,允许攻击者通过几个令牌样本即可推断出应用程序最近发布的其他有效令牌,因此具有可预测性

  2.即使推断过程需要做出大量尝试,并且成功率极低,(例如,每1000次尝试得到一个有效令牌),自动攻击工具也仍然能够利用这猴子那个缺陷在很短的时间内确定大量有效令牌

 

隐含序列

 

 

回话终止攻击

1、尽可能缩短一个会话的寿命可降低攻击者截获、猜测或滥用有效会话令牌的可能性。

2、其次,如果用户不再需要现有会话,终止会话为用户提供—种使其失效的途径,在进—步降低上述可能性的同时,在某种

6、即使服务器从用户的浏览器中删除令牌(例如,通过发布一个清空令牌的Set-Cookie指令)。程度上确保共享计算环境中会话的安全。

3、一些应用程序并不实施有效的会话终止功能。

4、会话一旦建立,它在收到最后请求后的许多天内也仍然有效,直到服务器最终将其清除。

5、有些时候,退出功能实际上并不能帮助服务器终止会话。

6、即使服务器从用户的浏览器中删除令牌(例如,通过发布一个清空令牌的Set-Cookie指令)。

7、然而,如果用户继续提交这个令牌,服务器仍然接受它。

8、最糟糕的情况:当用户单击"退出"按钮时,应用程序并不与服务器通信,因此服务器不采取任何行动

9、相反,应用程序执行一段客户端脚本清空用户的cookie,在随后的请求中将用户返回到登录页面。

10、访问这个cookie的攻击者就能使用会话,好像用户从未退出一样。

 

会话劫持攻击

攻击者通过网络嗅探、XSS攻击等方式获取被攻击者会话令牌的攻击方式。

这种攻击方式最简单也最有效,也是目前最多采用的攻击方式。

回话管理漏洞的防御

1、令牌传输安全

 令牌只能通过HTTPS传送

 如果使用HTTP cookie传送令牌(大多数情况下),应将这些cookie标记为secure,以防止用户浏览器通过HTTP传送它们。

2、增加软硬会话过期

 软会话过期,它指的是用户在一定的时间内与应用系统没有交互,则会话过期,也就是我们常说的Session失效。

 硬会话过期,它指的是用户登录到系统中经过一定的时间后,不管用户做什么,该会话都会过期。

3、提供完善的注销功能

 用户可以手动地使当前会话过期,这就是我们在几乎所有网站上都看到的logout按钮。

 TIPS:要保证注销不存在会话终止漏洞。

 

 

SQL注入攻击

  SQL注入 原理

    1.几乎每一个web应用都需要使用数据库来保存操作所需的各种信息

    2.所以web程序经常会建立用户提交数据的sql语句

    3.如果,建立这种语句的方法不安全,那么应用程序就很容易受到SQL注入的攻击

    4.最严重的情况下,攻击者可利用SQL注入读取甚至修改数据库中保存的所有数据

    5.用户可提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据

    6.这就是所谓的SQL Injection,即SQL注入

 

SQL注入威胁

  1.探知数据库的具体结构,为进—步攻击做准备

  2.泄露数据,尤其是机密信息、账户信息等

  3.取得更高权限,来修改表数据甚至是内部结构

SQL注入防御

参数化查询是对SQL注入根本性的防御策略,也叫做预处理语句,在建立一个包含用户输入的SQL语句时分为两步:

  1、指定查询结构,用户输入预留占位符

  2、指定占位符的内容

标签:令牌,管理机制,应用程序,用户,会话,SQL,攻击者
From: https://www.cnblogs.com/yu3304/p/17293958.html

相关文章

  • SQLlabs less1-10通关笔记
    SQLlabs通关笔记mysql数据结构在练习靶场前我们需要了解以下mysql数据库结构,mysql数据库5.0以上版本有一个自带的数据库叫做information_schema,该数据库下面有两个表一个是tables和columns。tables这个表的table_name字段下面是所有数据库存在的表名。table_schema字段下是所......
  • MySQL Others--优化autocommit会话参数设置请求
    问题描述在排查QPS较高的MySQL集群过程中发现,部分MySQL集群约50%的请求为"SETautocommit=1",每次业务请求前都会执行1次"SETautocommit=1"操作,虽然单次”SETautocommit=1“操作并不会消耗过多MySQL服务器资源,但高QPS场景下频繁执行"SETautocommit=1"操作,严重浪费应用服务器和M......
  • 【SQL Server】DateAdd
    定义和用法DATEADD()函数在日期中添加或减去指定的时间间隔。语法DATEADD(datepart,number,date)date参数是合法的日期表达式。number是您希望添加的间隔数;对于未来的时间,此数是正数,对于过去的时间,此数是负数。datepart参数可以是下列的值:datepart缩写年yy,yy......
  • keepalived+MySQL实现高可用
    (一)keepalived概述Keepalived通过VRRP(虚拟路由冗余协议)协议实现虚拟IP的漂移。当master故障后,VIP会自动漂移到backup,这时通知下端主机刷新ARP表,如果业务是通过VIP连接到服务器的,则此时依然能够连接到正常运行的主机,RedHat给出的VRRP工作原理如下图: 本来对VIP漂移有一定了解的......
  • MySQL - 02
     数据库--查询数据库showdatabases;--创建数据库createdatabaseifnotexistsdbName;--切换数据库usedbName;--删除数据库dropdatabasedbName;dropdatabaseifexistsdbName;--查看当前使用的数据库selectdatabase(); 表&数据--创建表createta......
  • MySQL(十二)索引使用的情况分析
    索引使用的情况分析数据准备创建表student_info、courseCREATETABLE`student_info`(`id`intNOTNULLAUTO_INCREMENT,`student_id`intNOTNULL,`name`varchar(20)DEFAULTNULL,`course_id`intNOTNULL,`class_id`intDEFAULTNULL,`create_tim......
  • SQL语句的其他关键字
    目录数据准备编写SQL语句小技巧查询关键字之where筛选查询关键字之groupby分组查询关键字之having过滤查询关键字之distinct去重查询关键字之orderby排序查询关键字之limit分页查询关键字之regexp正则表达式多表查询的思路数据准备#数据准备createtableemp(idintpri......
  • mysql 窗口函数(Window Functions)
    MySQL窗口函数(WindowFunctions)是一种高级的SQL查询技巧,它允许在结果集的一组相关行上执行计算。窗口函数可以用于处理分组、排序、累计等复杂的聚合任务,使得查询更加简洁和高效。在MySQL8.0及更高版本中,支持窗口函数。以下是一些常用的窗口函数:ROW_NUMBER():为结果集中的......
  • Linux下安装MySQL
    0准备工作yum换源:https://www.cnblogs.com/lgjb/p/17293111.html1下载yumRepositorywget-i-chttp://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm2安装yumRepositoryyum-yinstallmysql57-community-release-el7-10.noarch.rpm3安装mysql5.......
  • MySQL重复数据
    插入的数据中A,B,E存在重复数据,C没有重复记录123456789101112131415161718192021CREATETABLE`tab`(  `id`int(11)NOTNULLAUTO_INCREMENT,  `name`varchar(20)DEFAULTNULL,  PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREME......