专注:网络安全、系统安全、应用安全、数据库安全、运维安全,趋势分析。

安全从业者2000人超级群:187297569 沟通:1255197 技术:75140776 北京:107606822 西安:53210718 渗透:50806427 站长QQ:55984512


【庖丁解牛】老王是如何用TA的“身份证”,掏空TA的银行储蓄?

2017-08-22 10:53 推荐: 浏览: 336 views 评论Comments Off on 【庖丁解牛】老王是如何用TA的“身份证”,掏空TA的银行储蓄? 字号:

摘要: 听说,老王最近手头紧,萌生了歪念头,要对好友的银行账户“下黑手”。只见三下五除二,好友的银行账户上的“全部家当”被一扫而空,全数归到老王的囊中。   老王是怎么做到的?原来有一次,老友刚在电脑上登陆完网银查询账户余额,老王就借机以借钱为由,发给老友“...

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

 

老王是怎么做到的?原来有一次,老友刚在电脑上登陆完网银查询账户余额,老王就借机以借钱为由,发给老友“伪造”的网银页面,诱骗好友点击。而实际上这是一条带有修改用户密码命令的恶意链接,银行验证通过了来自老友本地的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等协议的问题。

联系站长租广告位!

中国首席信息安全官


关闭


关闭