会话管理机制
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