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

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

时间:2023-03-23 19:44:35浏览次数:43  
标签:令牌 管理机制 应用程序 用户 会话 SQL 攻击者

会话管理机制

会话管理概述

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

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

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

由于回话管理机制所发挥的关键作用。它们成为针对应用程序的恶意攻击的主要目标

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

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

 

 会话令牌生成漏洞

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

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

分析发现这串字符只拥有十六进制字符,可以猜想为ASCII字符串,反解得到该串字符含义:

 

 

 由此攻击者可以枚举大量用户来生成可能有效令牌,实施攻击

令牌可预测

一些会话令牌并不包含与某个特殊用户有关的任何有意义的数据,但由于它们包含某种顺序或模式,允许攻击者通过几个令牌样本即可推断出应用程序

最近发布的其他有效令牌,因此具有可预测性。

即使推断过程需要做出大量尝试,并且成功率极低(例如,每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注入原理

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

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

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

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

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

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

SQL注入威胁

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

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

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

SQL注入防御

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

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

2、指定占位符的内容

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

相关文章

  • JPA使用in查询构建sql参数问题
    JPA使用in查询构建sql参数问题https://blog.csdn.net/b308175181/article/details/100744622jpa自己构建的sql语句,如要使用in,传参必须用List数组,会自动转化。拼接的Stri......
  • 个人常用sql记录
            CDATA区间使用 IF使用  CaseWhenThen的使用 ......
  • 28、服务发现-CoreDNS、会话粘滞、无头服务
    1、基础知识1.1、需求在传统的系统部署中,服务运行在一个固定的已知的IP和端口上,如果一个服务需要调用另外一个服务,可以通过地址直接调用,但是,在虚拟化或容器话的环境......
  • 1万条数据只能传值调用存储过程,sql如何优化
    1如果需要传递的数据量比较大,那么在存储过程中使用表变量是一种比较好的选择,而且可以通过以下方式优化:使用临时表代替表变量如果从外部获取的数据量较大,可以考虑使用......
  • 写一条sql列出开始日期和结束日期之间的每一天(包括起止日期)
    给定一个开始日期和结束日期,写个sql把中间的每天都查出来(包括开始和结束日期)。给定开始时间是2023-03-12,结束时间是2023-03-22,sql如下:SELECTDATE_ADD('2023-03-12',IN......
  • CentOS安装Mysql5
    title:CentOS安装Mysql5.7date:2022-08-1417:45:50tags:-Linux-CentOS-Mysqlcategories:-运维-数据库-Mysqlkeywords:'Linux,CentOS,Mysql'de......
  • 关于Mysql中文字段的排序
    发表这个帖子是因为产品的一个需求,按照名称首字母正序排序。目前所有的库默认的字符集都是utf8mb4,排序规则是utf8mb4_general_ci,这种排序规则不支持按中文的拼音首字母......
  • MSSQL PIVOT和UNPIVOT使用说明
    一、版本要求1.数据库的最低版本要求为SQLServer2005或更高。2.必须将数据库的兼容级别设置为90或更高。3.查看我的数据库版本及兼容级别。如果不知道怎么看数据库......
  • mysql8主从复制(一主三从) docker
    一、准备挂载文件为了将配置文件在宿主机做挂载,先运行测试镜像拷贝配置文件1、拉取镜像dockerpullmysql:8.0.262、创建测试容器mysql-demodockerrun-it-p330......
  • sqlmap简单使用
    先安装python,再将sqlmap的解压文件复制到python根目录中windows下sqlmap主要命令pythonsqlmap.py-h        //查看帮助信息pythonsqlmap.py-u"url"......