web安全总结(三)

三、因会话管理疏忽引发的安全漏洞

会话管理是用来管理用户状态的必备功能,但是如果在会话挂你上有所疏忽,就会导致用户的认证状态被窃取等后果。

1 会话劫持

会话劫持(Session Hijack)是指攻击者通过某种手段拿到用户的会话ID,并非法使用此会话ID伪装成用户,达到攻击的目的。

具备认证功能的Web应用,使用会话ID的会话管理机制,作为管理认证状态的主流方式。会话ID中记录客户端的Cookie等信息,服务器端将会话ID与认证状态进行一对一匹配管理。

可获得会话ID的方式:

  • 非法生成推测
    
  • 窃取或者XSS攻击盗取
    
  • 会话固定攻击强行获取
    

2 会话固定攻击

对以窃取目标会话ID为主动攻击手段的会话劫持而言,会话固定攻击(Session Fixation)攻击会强制用户使用攻击者指定的会话ID,属于被动攻击。

2.1 会话固定攻击案例

例如某个网站,具有认证功能,会在认证前发布一个会话ID,若认证成功,就会在服务器内改变认证状态。

  1. 攻击者准备陷阱,先访问Web网站拿到会话ID。此刻,会话ID还是未认证的状态。
    
  2. 攻击者设置好强制用户使用该会话的陷阱,并等待用户拿着这个ID前去认证。一旦用户触发陷阱并完成认证,会话ID在服务器上的状态变成认证,就会被记录下来。
    
  3. 攻击者等用户触发陷阱后,再利用之前的会话ID访问网站。由于该会话ID已由用户认证,所以攻击者可以冒充真正的用户顺利访问了。
    

3 跨站点伪造请求

跨站点伪造请求(Cross-Site Request Forgeries,CSRF)攻击是指攻击者通过设置好的陷阱,强制对已完成认证的用户进行非预期的个人信息等某些状态更新,属于被动攻击。

跨站点伪造有可能会造成以下影响。

  • 利用已通过认证的用户权限更新信息等
    
  • 利用已通过认证的用户权限购买商品
    
  • 利用已通过认证的用户权限在留言板上发表评论
    
3.1 跨站点伪造请求攻击案例

例如:在某网站,有个留言板,只允许已认证用户留言。

那么,当已认证的用户A正常登陆后,浏览器中的Cookie就会持有一个会话ID。

然后攻击者设置好一个有陷阱的评论信息,比如插入易一张图片

当用户触发陷阱后,会在留言板上留下“被攻击了啊”的留言。

四、其他类型安全漏洞

1 密码破解

密码破解攻击(Password Cracking)即尝试算出密码,突破认证。不仅可攻击Web应用,还包括其他系统,如FTP、SSH等。

一般密码破解有两种方式

1.1 密码试错
  • 穷举法
    
    又称暴力破解,指对所有秘钥集合构成的秘钥空间进行穷举,用所有可行的候选密码对目标进行试错,用以突破的一种攻击。
  • 字典攻击
    
    字典攻击是指利用事先收集好的候选密码,美剧字典中的密码,尝试认证的一种攻击方式。
1.2 对已加密密码的破解

对已加密密码的破解(攻击者侵入系统,获得加密或散列处理的密码数据)

Web应用在保存时,一般不会直接以明文的方式保存,通过散列做散列处理或加salt的手段对要保存的密码本身加密,那即使攻击者使用某些手段窃取密码数据,如果想真正使用这些尼玛,那么必须先通过解码等手段,把加密处理的密码还原成明文形式。

从加密过的数据中到处明文通常有一下几种方法。

  • 穷举法+字典攻击进行类推
    

针对密码使用散列函数进行加密处理,采用穷举法或字典攻击相同的收发,尝试用相同的散列函数加密候选密码,然后把计算出的散列值与目标散列值匹配,类推出密码。

  • 彩虹表
    

彩虹表(Rainbow Table)是由明文密码及与之对应的散列值构成的一张数据库表,是一种通过实现制作庞大的彩虹表,可在穷举法+字典攻击等实际破解过程中缩短消耗时间的技巧。

  • 获取秘钥
    

使用共享秘钥加密方式对密码数据进行加密处理的情况下,如果能通过某种手段拿到加密使用的秘钥,也就可以对密码数据解密了。

  • 找到加密算法漏洞
    

利用加密算法本身的漏洞尝试解密。

2 点击劫持

点击劫持(Clickjacking)是指利用透明的按钮或链接做成陷阱,覆盖在Web页面上。然后诱导用户在不知情的情况下,点击链接访问内容的一种攻击手段,又称为界面伪装(UI Redressing)

例如:可以插入以下代码



当用户点击PLAY按钮的时候等同于点击SNS的注销按钮

3 DoS攻击

DoS攻击(Denial of Service attack)是一种让运行中的服务呈停止状态的攻击。有时也叫做服务停止攻击或者拒绝服务攻击。Dos攻击的对象不仅限于Web网站,还包括网络设备服务器等。

Dos攻击主要有两种方式:

  • 集中利用访问请求造成资源过载,资源耗尽时,服务也就呈停止状态
    
  • 通过攻击安全漏洞使服务停止
    

其中,集中利用访问请求的Dos攻击,单纯来讲就是发送大量的合法请求。服务器很难分辨什么是正常的请求,什么是攻击请求,因此很难做出防范。
多台计算机发起的DoS攻击称为DDoS攻击(Distributed Denial of Service attack)。DDoS攻击通常利用那些感染病毒的计算机作为攻击者的跳板。

4 后门程序

后门程序(Backdoor)是指开发设置的隐藏入口,可不按正常步骤使用受限功能。利用后门程序能够使用原本受限制的功能。

  • 开发阶段作为Debug调用的后门程序
    
  • 开发者为了自身利益植入的后门程序
    
  • 攻击者通过某种方法设置的后门程序

你可能感兴趣的:(web安全总结(三))