当前位置:网站首页 > 黑客培训 > 正文

钓鱼页面之无视浏览器URL栏

freebuffreebuf 2021-08-09 294 0

本文来源:绿盟科技

技术分析

网络安全形势日趋严峻,层出不穷的网络钓鱼攻击可以托管各种恶意软件和勒索软件攻击,更糟糕的是这些攻击正在呈现持续上升的趋势。众多提及如何防范钓鱼网站的文章都会建议用户检查URL地址栏,确认是否对应正确的网站地址,相信大家平常对这一点记忆深刻,并将其作为第一项确认是否可信的内容。今天的原创技术分享将讲述钓鱼网站如何拥有“可信的url”。

如何构造可信的网站url

钓鱼页面往往使用近似域名,如:g00gle.com、google-service.com、google.xyz或者使用超链接或者短链接进行伪装,如:http://t.cn/h93k,但是稍加培训的员工能轻易识别这种钓鱼网站,那么攻击者会利用哪些手法去呈现真实的网站url呢?

域名劫持(Domain Takeover)

我们知道域名解析是由DNS协议完成的,包含了多种记录类型,比如其中的A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录;NS记录,解析服务器记录,用来表明由哪台服务器对该域名进行解析;而CNAME记录通常也叫别名记录,是一种将一个域名映射到另一个域名的记录。攻击者会采用各种社工欺骗的手法、或者利用受害者未及时修改的cname记录,达到控制域名或者相关子域名的效果。

标签劫持(Tabnabbing)

标签钓鱼是基于web的客户端攻击。这种攻击利用的是网站页面跳转的正常功能和用户对于标签页的疏忽。

攻击展示

借用github公开代码 https://github.com/securelayer7/Tabnabbing

1. 首先,攻击者构造受害者感兴趣的网站内容,并诱导其访问其它网站(如:诱导用户点击分享按钮)。

1628500486_6110f2064e27a256dfbd2.png?1628500486352

2. 受害者点击分享按钮后,页面将会在新的标签页显示正常的网页,此时,受害者看到的url栏为正常的官方域名,并坚信这是官方网站。

1628500506_6110f21a83bdd88db6c00.png?1628500506673

3. 但是当受害者在这个页面上停留几秒,或者浏览新标签,此网站页面将会跳转到钓鱼网站,受害者稍不注意就会毫不犹豫在一模一样的钓鱼页面输入账号密码。

1628500525_6110f22dc72a2b9a0d60d.png?1628500525893

OAUTH钓鱼

OAUTH(Open Authorization)协议为用户资源的授权提供了一个安全的、开放而又简易的标准。互联网很多服务如Open API,很多大公司如Google,Yahoo,Microsoft等都提供了OAUTH认证服务,这些都足以说明OAUTH标准逐渐成为开放资源授权的标准。OAUTH授权有如下几个阶段,如图

1628500556_6110f24cca43f11c43422.png?1628500556951

同时,任何第三方都可以使用OAUTH认证服务,任何服务提供商都可以实现自身的OAUTH认证服务。"钓鱼页面"为官方授权页面,攻击者无需用户伪造网站url,而是通过官方的认证服务索取受害者的账号控制权限。

攻击者注册合法的第三方OAUTH服务器,通过发送正常的授权url,诱导受害者点击允许。如图,为微软账号和gmail的OAUTH的授权页面,受害者点击允许后,攻击者会获得授权码,进而接管账户权限。

1628500579_6110f2631d1b5865449b1.png?1628500580524

1628500609_6110f2814caa8e0561d88.png?1628500609770

滚动钓鱼(The inception bar)

什么是滚动钓鱼

该方法利用用户在使用移动版本chrome浏览器时,页面向下滚动自动隐藏的特性进行url栏欺骗。开发人员 Jim Fisher 在其个人博客进行实验,展示了它的工作方式。当页面向下滚动时,浏览器会隐藏 URL 栏,为网页腾出更多空间。正因如此,网络钓鱼站点得以显示自己的虚假 URL 栏。当页面向上滚动时,Chrome 会重新显示网址栏。但作者通过“滚动监狱”的方式欺骗chrome,并且让用户误会以为页面在向上滚动。

这里,假URL栏使用了id为fakeurlbar的div标签,并将CSS设定为position: fixed,将其固定在最上方。

1628500636_6110f29cb295a7493c4a7.png?1628500636830

然后,作者在body中制作了一个div标签,将其设定为overflow: scroll,并往里面放一个高为1000px的填充元素,结合js让受害者永远在div里面,而不可能真的向上滑动。

1628500652_6110f2ac5e6e2026d773d.png?1628500652800

演示

https://d33wubrfki0l68.cloudfront.net/783bd862c3df19b6fb4eac0b4f687d598c957891/a3915/assets/2019-04-27/demo.webm1628500679_6110f2c76b8b474d54efb.gif?1628500695129

全屏api钓鱼

什么是全屏api

FullScreen API 是一个html5 API,简单而又强大。FullScreen 让我们可以通过编程的方式来向用户请求全屏显示,如果交互完成,随时可以退出全屏状态。

1628500772_6110f32443c2e40ffa619.png?1628500772396

重点是,全屏后的页面可以隐藏原本的浏览器url栏,当攻击者欺骗目标点击全屏按钮后,攻击者可以显示其伪造的url栏以及任意的url地址。

1628500786_6110f332af1c1156cd3fa.png?1628500786888

攻击场景

1. 攻击者伪造网站内容,诱导受害者点击伪造的全屏按钮。

1628500809_6110f349eb4a1fb06ceb3.png?1628500810053

2. 受害者点击 "access to your office365",则全屏显示伪造好的浏览器url栏和钓鱼页面

1628500826_6110f35aed56524f5d5a0.png?1628500827831

3. js判断受害者的浏览器,显示对应的浏览器url栏

(浏览器为firefox时,显示如图)

1628500849_6110f371390093cbccbb1.png?1628500849978

(移动端,显示如图)

1628500863_6110f37f9321f22916cd9.png?1628500863807

4. 受害者键入凭据后,账号被接管。

防范

1. 当网站存在漏洞,如:xss、链接跳转等漏洞,也能被攻击者利用进行钓鱼攻击,而无需伪造浏览器url,用户在判断钓鱼网站时,不能寄希望于网站链接,应该更加注重网址来源是否可信。

2. 建议自行输入网址打开需要输入凭据或者下载软件的网站,绝对不要将凭据或私钥输入通过点击链接到达的网站中。

总结

本文列举了几种无视浏览器url栏的钓鱼攻击手法,攻击效果取决于实际构造的利用场景。希望对蓝军技术人员有所启发。

转载请注明来自网盾网络安全培训,本文标题:《钓鱼页面之无视浏览器URL栏》

标签:钓鱼攻击

关于我

欢迎关注微信公众号

关于我们

网络安全培训,黑客培训,渗透培训,ctf,攻防

标签列表