Iframe安全威胁

2012-07-31 328785人围观 ,发现 14 个不明物体 WEB安全

本为由freebuf作者juney mm翻译,转载请注明出处!

Web应用程序的安全始终是一个重要的议题,因为网站是恶意攻击者的第一目标。黑客利用网站来传播他们的恶意软件、蠕虫、垃圾邮件及其它等等。OWASP概括了Web应用程序中最具危险的安全漏洞,但是仍在不断积极的发现可能出现的新的弱点以及新的web攻击手段。

黑客总是在不断寻找新的方法欺骗用户,因此从渗透测试的角度来看,一个网络管理员需要照看到每一个可能被利用来入侵的漏洞和弱点。现在有许多自动化工具和手工技术可用来测试一些常见的漏洞,如SQL注入,跨站,安全错误配置及其它漏洞,但是我们需要注意到这些漏洞可能出现的变种。SQL注入是相当危险的,因为攻击者可以访问到数据库并窃取网站的用户和管理员信息。如果攻击者劫持到一个用户信息或使访问者重定向到一个恶意站点,这将会破坏访问者对网站的信任。

这篇文章中,我们讨论一下HTML代码中iframe的攻击,iframe是可用于在HTML页面中嵌入一些文件(如文档,视频等)的一项技术。对iframe最简单的解释就是“iframe是一个可以在当前页面中显示其它页面内容的技术”。

iframe的安全威胁也是作为一个重要的议题被讨论着,因为iframe的用法很常见,许多知名的社交网站都会使用到它。使用iframe的方法如下:

Example 1:

<iframesrc=”http://www.freebuf.com”></iframe>

该例说明在当前网页中显示其它站点。

Example 2:

<iframesrc=’http://freebuf.com/’ width=’500′ height=’600′ style=’visibility: hidden;’></iframe>

iframe中定义了宽度和高度,但是框架可见度被隐藏了,所以不能显示。由于这两个属性占用面积,一般情况下攻击者不使用它。
现在,它完全可以从用户的视线中隐藏了,但是iframe仍然能够正常的运行。看以下图片:

这里使用了Infosec Institute站点的URL,攻击者可以插入其它恶意的URL。

混淆的iFrame注入攻击

混淆的iframe注入攻击是一个危险并棘手的攻击,因为它很难以被察觉,难以在网站上发现恶意的注射性代码。混淆是有隐藏交互的意思,因此难发现被注入的代码。这类攻击的目的是欺骗用户重定向到第三方网站并利用。如果使用iframe注入攻击控制了一个网站,那么很容易找到并定位注入的代码。但是使用混淆的iframe注入攻击,那么就不容易找到被注入的代码了。
让我们来思考一个例子—–一个站点被控制了,它被重定向了或显示了其他web页面的内容出售一些商品,访问者信任你这个站点,他们经常在此购买商品,那么你需要经常清理你的网站以防止遭受这种攻击。一个简单的方法就是检索可能存在的iframe索引页和重定向代码。假设你已经审查过了,但没有发现任何第三方的URL。现在,没有任何第三方的URL说明什么呢?一些攻击者可能使用了社会工程学技术进行web攻击。假设有这样一段代码:

这段代码看起来很正常,但是使用java解码后,如下:

这看起来像是一个合法的代码。攻击者谨慎的使用了“GPL”“wp”和“Java”这样合法的代码,但实际上是存在问题的。这些代码看起来似乎是十六进制,我们用十六进制解码器解码后如下:

实际结果是:

<iframesrc=’http://freebuf.com/’ width=’1′ height=’1′ style=’visibility: hidden;’></iframe>

现在可以想象为何混淆的iframe注入攻击很难被发现了。

如何清除Iframe注入代码

事故可能发现在任何时间的任何人身上,如果你的网站已经被黑客入侵,他们在你的网站上注入恶意的iframe代码,请保持冷静,你可以采取一些有效的措施来保护访问者的身份和机密信息。WordPress网站似乎是最活跃的iframe注入攻击的目标。黑客们普遍的做法是,将用户重定向到一些恶意站点,或利用浏览器跨域漏洞来控制受害者。因此,本章中我们将讨论如何采取有效的行动来防护iframe注入攻击。

1. 关闭网站,显示日常维护的消息。立即关闭网站是一个良好的行为,防止恶意软件在受害者计算机上传播。

2. 创建备份站点(核心文件,数据库和其他所有的文件夹)。即使它是一个受感染的站点,备份也是必要的。如果在清理过程做了某些错误操作可以恢复到之前的同等情况。

3. 确保你的计算机没有感染到恶意软件和病毒,如果你不确定你的计算机是否受到感染,做一次安全清理。这是一个必要的步骤,因为恶意软件可能会有记录FTP凭据的能力。

4.修改所有与网站相关的密码(FTP密码,SSH密码,Admin密码,Cpanl或其他主机面板密码,数据库密码等等)。

5. 如果你的网站需要一个干净的备份,使用反病毒软件扫描一次。之后,上传到你的Web服务器,并检查各项功能。如果仍然有问题,那么需要手动检查文件,以确定注入的代码。

6. 如果没有干净的备份,手动找到注入的代码并删除。在上文中,以分析了两种iframe注入(简单的iframe注入和隐藏的iframe注入),可能的情况下,按照之前的程序,分析可能存在的注入(建议在每一次变化后做一个备份)。

7. 确保站点不再存在注入代码。现在,建议找到造成问题的根源。你需要找出攻击者是如何进行注入的,为今后做预防。最常见的原因有以下几种:

过时的CMS(内容管理系统)软件(确保更新所有的软件和插件至最新版本)
服务器软件中的漏洞
 FTP和其它凭据被泄露
应用程序存在漏洞(Web应用程序代码中)

8. 计算机上必须有反病毒软件。网站建立FTP连接之前不要忘了扫描你的计算机。不建议保存FTP和SSH密码。

这些评论亮了

  • Monyer 回复
    这篇文章问题不少:
    首先这就和xss没有什么关系,sql-in也可以这样搞
    其次和iframe关系也不大,使用也能达到效果
    然后这也不叫什么“混淆的iFrame注入攻击”,顶多就是HTML与JS编码罢了
    或者算是最初级的代码混淆吧
    并且第一次解码是URLencode解码,也不是什么java解码
    第二次那个十六进制编码实际上是js的escape编码
    而且如何清除代码那段整段的思路都是不太清晰和正确的
    应该是写这文章的老外的功底不太扎实吧
    妹纸再接再厉,多翻译些好文章!
    )18( 亮了
  • juney (3级) 太平保险应用安全管理 回复
    @purpose 可以叫声姐~
    )12( 亮了
  • purpose 回复
    求妹子联系方式!
    )6( 亮了
  • 捡猪屎的屌丝 回复
    @juney  看头像貌似是妹子,求妹子!
    )6( 亮了
发表评论

已有 14 条评论

取消
Loading...
css.php