美文网首页
web安全总结(三)

web安全总结(三)

作者: Hedgehog_Dove | 来源:发表于2021-03-27 13:04 被阅读0次

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

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

    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。

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

    <img src="http://example.com/msg?q=被攻击了啊">

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

    四、其他类型安全漏洞

    1 密码破解

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

    一般密码破解有两种方式

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

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

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

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

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

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

    • 彩虹表
      

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

    • 获取秘钥
      

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

    • 找到加密算法漏洞
      

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

    2 点击劫持

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

    例如:可以插入以下代码

    <ifranme id="target" src="http://sns.example.com/leave" style="opecity:0;filter:alpha(opecity=0)"></iframe>
    <button style="position:absolute;top:100;z-index:-1">PLAY</button>
    

    当用户点击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安全总结(三)

          本文链接:https://www.haomeiwen.com/subject/hfxyhltx.html