提交需求
*
*

*
*
*
立即提交
点击”立即提交”,表明我理解并同意 《美创科技隐私条款》

logo

    产品与服务
    解决方案
    技术支持
    合作发展
    关于美创

    申请试用
      【庖丁解牛】老王是如何用TA的“身份证”,掏空TA的银行储蓄?
      发布时间:2017-08-18 阅读次数: 1045 次

      听说,老王最近手头紧,萌生了歪念头,要对好友的银行账户“下黑手”。只见三下五除二,好友的银行账户上的“全部家当”被一扫而空,全数归到老王的囊中。

      老王是怎么做到的?原来有一次,老友刚在电脑上登陆完网银查询账户余额,老王就借机以借钱为由,发给老友“伪造”的网银页面,诱骗好友点击。而实际上这是一条带有修改用户密码命令的恶意链接,银行验证通过了来自老友本地的Cookie,密码修改成功,转账就显得顺利成章了。

      老王如此“高手段”,其实是用了CSRF(Cross-site Request Forgery),中文简称跨站请求伪造。简单来说,CSRF是通过第三方网站伪装成正常用户登录目标网站,并以正常用户的身份对用户账号进行操作,以达到目的。作为WEB端常见的攻击方式,需要引起安全人员的重视,否则危害难以预料。

      咱们来好好地理一理,CSRF攻击原理和防护策略。

       

      CSRF攻击流程分析

      结合一个修改用户账号密码的实例进行分析。下图是CSRF攻击原理流程:

       

      1、正常用户在自己本地浏览器上访问WEB A 服务,并且输入了自己的账号密码(如图一),此时浏览器会提示是否保存账号密码,如果用户点击保存,就会在本地生成有关账号信息的cookie,这样下次无需登录即可访问网站,这一招大大地便利了用户操作,提高了用户体验。可是,这种便利反哺了CSRF攻击,对全球WEB造成了极大的损失。

       

      (图一)登陆页面

      Cookie根据存放的位置可以分为两种,Session Cookie(内存Cookie) 和 Third-party Cookie(硬盘Cookie)。内存Cookie在进程结束后即浏览器关闭后就会失效,而硬盘Cookie则需要用户手动清除才会消失。

      2、WEB A服务器接受到正常用户的请求,对账号和密码进行验证通过,用户登录成功。

      (图二)用户登录成功页面

      以上两步,是用户的正常操作,也是大家访问并登录网站的基本操作。通过上面的操作,生成了用户账号信息的Cookie。

      3.而就在此时,黑客可以通过在第三方网站WEB B设置一个指向WEB A的并带有恶意命令的超链接,并将它隐藏在按钮、表单等控件上。再通过社交工程学的方式引诱用户点击,而这个链接带有的命令是可以修改用户密码。

       

      (图三)用户看到的“正常”按钮

       

      (图四)按钮隐藏下的修改密码的命令

      4、若用户在并不知道该超链接的情况下对按钮或表单进行了点击,则用户浏览器会带着Cookie再次发出对WEB A的操作请求。若用户之前登陆的WEB A未被关闭,则浏览器会携带session Cookie。若WEB A 已被关闭,则浏览器会携带Third-party Cookie发出请求,但某些浏览器会禁止表单,按钮等标签发送第三方Cookie,如IE,从而导致CSRF失败。

      5、WEB A对此次请求进行验证,由于Cookie无误,所以请求操作被通过。此时密码已经被修改,用户无法登陆。如图

      (图五)用户用原密码登录失败

       

      总结

      一次CSRF攻击成功实施,至少需要4个条件:

      1.被害用户已经进行过WEB身份认证,并留有Cookie

      2.新提交的请求无需重新进行身份认证或确认机制

      3.攻击者了解WEB请求的参数构造

      4.通过社交工程学诱使用户触发攻击的指令

       

       

      CSRF的“兄弟”SSRF

      说到CSRF,就不得不提SSRF,一种非常相似的攻击方法。简单介绍一下:

      SSRF(Server-Side Request Forgery),被称为服务器端伪造攻击。如果把CSRF理解成客户端伪造请求攻击,其是利用用户本地的Cookie骗过服务器端的验证达到目的。而SSRF则是利用服务器天然能够访问内部网络的特点,进行攻击。

      由此可以得出,SSRF的受害对象主要是一些服务器所连接的一些内网设备,如内网的应用程序,通过file协议获得内部网络的资料等。SSRF攻击常见于一些允许以URL作为参数,且未对URL进行过滤的服务器。如下图

       

      该识图网站允许以图片URL作为参数传入图片,假如该网站服务器和它的内网相连,且缺少对传入URL的过滤,那么就可以以其内网网址为参数传入,得到其内网网址上的内容。

       

      如上图。若URL是正常的第三方服务器,则URL会过滤通过。若URL是带有命令操作的服务器端A,且绕过了服务器端A的过滤,则服务器端A会执行URL带有的命令,并将结果返回会客户端,由此一次SSRF攻击成功。

       

      总结

      一次成功的SSRF需要2个条件:

      1.攻击者知道服务器端的内网地址

      2.服务器端未对请求URL进行过滤或过滤不完全

       

      从以上我们可以得出,该漏洞产生的原因是由于服务端对资源进行请求的时候对URL的验证出现了纰漏,所以我们的防护策略主要是围绕URL的过滤。

      1.将URL进行解析转化成IP,并使用正则表达式表示内网网址,并以此进行URL过滤。

      2.建立URL白名单,只允许白名单上内容通过过滤。

      3.建立内网IP黑名单,阻止对该IP的请求。

      4.对返回内容进行过滤,减少敏感内容暴露。

      5.禁止不需要的协议,只允许http和https协议的请求,减少file等协议的问题。

      免费试用
      服务热线

      马上咨询

      400-811-3777

      回到顶部