HTTP终相守--会话管理机制、SQL注入攻击、跨站脚本攻击、CSRF攻击

会话管理机制

会话管理机制概述:

  • 绝大多数web应用程序中,会话管理机制是一个基本的安全组件
  • 会话管理在应用程序执行登录功能时显得特别重要
  • 因为,它可以在用户通过请求提交他们的证书后,持续向应用程序保证任何特定用户身份的真实性
  • 由于会话管理机制所发挥的关键作用,它们成为针对应用程序的恶意攻击的主要目标
  • 若攻击者能够破坏应用程序的会话管理,他就能轻易避开其实施的验证机制,不需用户证书即可伪装成其他应用程序用户

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

会话管理概述:

HTTP终相守--会话管理机制、SQL注入攻击、跨站脚本攻击、CSRF攻击_第1张图片

会话终止攻击:

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

其次,如果用户不再需要现有会话,终止会话为用户提供一种使其失效的途径,在进一步降低

上述可能性的同时,在某种程度上确保共享计算机环境中会话的安全

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

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

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

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

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

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

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

访问这个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语句时分为两步:

  1. 指定查询结构,用户输入预留占位符
  2. 指定占位符的内容

跨站脚本攻击

 XSS攻击原理:

  1. 跨站脚本攻击(Cross Site Scripting),XSS是一种经常出现在WEB应用中的计算机安全漏洞
  2. 它允许恶意WEB用户将代码植入到提供给其他用户使用的页面中,其他用户在观看网页时,恶意脚本就会执行
  3. 这类攻击通常通过注入HTML或js等脚本发动攻击
  4. 攻击成功后,攻击者可以得到私密网页内容和cookie等
  5. 最近几年XSS攻击已经为最流行的攻击方式

 XSS攻击的危害:

  • 盗取各类用户账号,如机器登录账号、用户网银账号、各类管理员账号等
  • 控制数据,包括读取、篡改、添加、删除企业敏感数据的能力
  • 盗窃企业重要的具有商业价值的资料等
  • 非法转账
  • 强制发送网站挂马
  • 控制受害者机器向其他网站发起攻击

XSS分类:  

1.反射式XSS

也称为非永久性XSS,是目前最流行的XSS攻击

出现在服务器直接使用客户端提交的数据,如url的数据、html表单中提交的数据,并且没有对数据进行无害化处理

如果提交的数据中含有HTML控制字符而没有被正确处理,那么一个简单的XSS攻击就会发生

典型的反射式攻击可通过一个邮件或中间网站,诱饵是一个看起来可信的站点的链接,其中包含XSS攻击脚本

如果信任的网站没有正确处理这个脚本,用户点击后就会导致浏览器执行含有恶意攻击的脚本

2.存储式XSS

 也称为永久性XSS,危害更大

攻击将攻击脚本上传到WEB服务器上,使得所有访问该页面的用户都面临信息泄露的可能,其中也包括了WEB服务器的管理员

存储式XSS多发生在最终显示给其他用户的位置包含:

  • 个人信息字段,如姓名、地址、电子邮件、电话等
  • 文档、上传文件及其他数据的名称
  • 提交给应用程序管理员的反馈或问题
  • 在用户之间共享上传文件内容
  • 其他应用程序用户传送的消息、注释、问题等

3.基于DOM的XSS

反射式XSS攻击和存储式XSS攻击都是通过服务器端提取用户提交的数据

并且以不安全的方式将其返回给用户

基于DOM的攻击仅仅通过JavaScript的方式进行

也就是说这种攻击经常发生在应用程序每次返回相同的静态html,而通过客户端JavaScript动态生成信息,并不会跟服务器端交互获取的时候

XSS攻击再载荷:

会话令牌:

XSS攻击最普遍的方式

截取一名受害者的会话令牌,劫持他的会话,进而作为受害者的身份来使用应用程序,执行任意操作并占有该用户的账户

虚拟置换:

这种攻击需要在一个WEB应用程序页面注入恶意数据,从而向应用程序的用户传送误导性信息

包括简单的向网站注入html,或者使用脚本注入精心设计的内容

注入木马:

这种攻击造成的后果远比虚拟置换严重,它在易受攻击的应用程序中注入实际运行的功能,旨在欺骗终端用户某种有害操作(如输入敏感数据等)

随后将它们传送给攻击者

在一个明显的攻击里,攻击者注入的功能向用户显示一个木马登录表单,要求它们他们向攻击者控制的服务器提交他们自己的证书

如果由技术熟练的攻击者实施,这种攻击还允许用户无缝登录到真正的应用程序,以便他们不会发觉访问过程中的任何反常情况

然后攻击者就可以自由使用受害者的证书实现自己的目的

这种类型的有效载荷非常适宜用于在钓鱼攻击中,向用户传送一个经过专门设计、连接可信应用程序的URL,并要求他们正常登录以访问这个URL

XSS防御措施:

1.输入验证

2.输出编码

3.输出编码

      应用程序之所以结合使用输入确认与输出净化,原因在于这种方法能够提供两层防御:如果其中一层被攻破,另一层还能提供一些保护

CSRF攻击

CSRF攻击原理:

CSRF(Cross-site Request Forgery,跨站请求伪造,也被称为"one click attack"或者"session riding",通常缩写为CSRF或者XSRF,是一种对网站的恶意利用)

XSS利用站点内的信任用户(受害者),而CSRF通过伪装来自受信任用户的请求来利用受信任的网站

通过社会工程学的手段(如通过电子邮件发送一个链接),来蛊惑受害者进行一些敏感的操作,如修改密码、修改E-mail、转账等,而受害者还不知道他已经中招

 CSRF攻击的危害:

CSRF的破坏力依赖于受害者的权限

如果受害者只是个普通的用户,则一个成功的CSRF攻击会危害用户的数据以及一些功能

入股受害者具有管理员权限,则一个成功的CSRF攻击甚至会威胁到整个网站的安全

与XSS攻击相比,CSRF攻击往往不太流行和难以防范

CSRF攻击预防:

1.增加一些确认操作

2.重新认证

3.使用Token

你可能感兴趣的:(HTTP,HTTP)