SQL注入:弱的网络应用代码可以让黑客访问你的数据库和网络

Posted 男神分享

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL注入:弱的网络应用代码可以让黑客访问你的数据库和网络相关的知识,希望对你有一定的参考价值。

SQL注入:弱的网络应用代码可以让黑客访问你的数据库和网络

小桀网络 

SQL注入概述

SQL注入是目前最常见的网站攻击形式,因为网络表单非常常见,通常它们没有正确编码,而用于发现漏洞并利用它们的黑客工具通常可以在线获得。这种攻击很容易完成,即使没有经验的黑客也可以完成恶作剧。然而,在非常熟练的黑客手中,Web代码的弱点可以揭示Web服务器的根级访问,并从那里完成对其他网络服务器的攻击。

结构化查询语言(SQL)是几乎通用的数据库语言,允许存储,处理和检索数据。使用SQL的数据库包括MS SQL Server,mysql,Oracle,Access和Filemaker Pro,这些数据库同样受SQL注入攻击。

基于Web的表单必须允许访问数据库以允许输入数据和响应,因此这种攻击会绕过防火墙和端点防御。任何Web表单,即使是简单的登录表单或搜索框,如果编码不正确,都可能通过SQL注入访问您的数据。

SQL注入如何工作

前景,客户,员工和业务合作伙伴可能都有权从数据库中存储或检索信息。您的网站可能允许任何网站访问者提交和检索数据。访问者的合法访问权限包括网站搜索,注册表单,联系表单,登录表单以及所有这些为您的数据库提供窗口。这些不同的访问点很可能包含在“现成”应用程序中,或者可能是为您的站点设置的自定义应用程序。这些表格及其支持代码可能来自许多来源,在不同时间获得并可能由不同人员安装。

SQL注入是使用这些公开可用的字段来获取数据库的入口。这是通过将SQL命令输入到表单域而不是预期的数据来完成的。编码不当的表单将允许黑客将它们用作数据库的入口点,此时数据库中的数据可能变得可见,并且可能访问同一服务器或网络中其他服务器上的其他数据库。

诸如联系表单,登录页面,支持请求,搜索功能,反馈字段,购物车以及提供动态网页内容的功能等网站功能都容易受到SQL注入攻击的影响,因为提供给访问者使用的字段必须允许至少有一些SQL命令直接传递给数据库。

SQL注入风险

由于数据库控制着许多网站功能,几乎所有的网站都会邀请访问者的输入,所以很多网页表单都很脆弱,SQL注入已经成为多年来一直使用的最常见的网站黑客工具。此外,如此多的犯罪分子现在正在使用SQL注入,几乎每天都会发现新的服务器,应用程序和代码漏洞。

我们自己的记录显示,我们被要求扫描的大多数(超过一半)网站都具有高或中等级别的SQL注入风险。高度的风险是有效地解锁,无人看守的门。中等风险是指与一个或多个其他因素相结合可能意味着麻烦。更多的网站有低风险问题。你需要知道的是:至少有一个主要风险的网站的比例实际上在增加。

尽管多年来SQL注入已成为众所周知的问题,但有几个因素会导致风险的增加。首先是更多的公司正在提供更多与访问者的网站互动,并且这种趋势正在急剧增加。其次,随着越来越多黑客获得SQL注入技能,他们正在发现更多的应用程序和服务,这些应用程序和服务很容易受到攻击,并且正在开发针对旧应用程序的新攻击。结果是使用这种攻击方法的机会几乎呈指数增长。

使用SQL注入成功攻击的风险取决于两个因素:业务的性质和规模以及应用程序的时间,更新和补丁状态以及技术人员的技能和数量。它归结为您是否是一个有趣的目标,以及您的Web服务器,其上的应用程序和您的网站代码是否设计良好,集成度良好并具有所有最新的修补程序和更新。

如果贵公司存储高价值的数据,贵公司或实体在高度争议的业务领域运营,或者您的网站具有政治或社会重要性或价值,那么您的网站即刻面临危险。当然,如果你有一些货币价值,那么你是一个目标。但如果您的网站在争议性环境中是意见领袖,那么您也是一个目标。我们已经被博客要求帮助,因为那里涉及的主题已经引发了SQL注入攻击。

SQL注入攻击现在正在网上征求。一个心烦意乱的客户,竞争对手甚至是前配偶现在可以轻松地雇佣一个'剧本小子' - 或者更糟糕的是,一个天才的黑客 - 来攻击一个网站。黑客被抓住的可能性很低。由于责任方偏高,不安派对可能会对您的站点造成损害,而不会被指责。

从技术上讲,如果您有任何未经常更新和修补的设备或应用程序,或者您的网站上的代码没有正确书写,那么您将面临SQL注入的风险。设备的年龄,应用程序和代码是风险的粗略指标。另一个是涉及的服务器数量,应用程序数量和网站访问点数量。如果您使用的是托管服务器,或者您使用的是外包技术资源,那么第三方对您的网站安全性进行审查就非常重要。甚至连内部员工都会因为时间紧迫和资源短缺而导致更新和修补程序可能延迟,或者未经适当审查而使用旧的旧代码。

SQL注入示例

每当网站访问者将数据输入到您网站的表单中时,SQL查询就会生成并传递到您的数据库。在简单的登录表单中,用户名和密码会呈现给数据库,如果有效,数据库会以答案形式出现,并允许用户访问(或不允许)。因此,无论表单或Web进程有多简单,数据库访问都是必需的,并且预计会有响应。

使用SQL注入,黑客会尝试将特定的SQL命令输入到表单字段中,而不是预期的信息。其目的是确保数据库的响应,这将有助于黑客了解数据库的结构,如表名。下一步是访问和查看重要表中的数据或向表中添加数据,例如添加新帐户或用户名和密码。粗略地说,第三步是使用对数据库的访问来发现和更改服务器上的安全设置,以允许黑客管理访问。

包括ASP,ASP.NET,php,JSP和CGI在内的任何动态脚本语言都容易受到攻击。唯一需要的设备是网络浏览器。网上有很多工具可以使搜索弱点的过程实现半自动化,并且有许多论坛让黑客分享漏洞并帮助对方克服障碍。

SQL注入结果

正如您可以想象的,黑客获得对您的服务器的管理访问权限意味着您将有效地将该服务器上的所有数据丢失给入侵者。更糟糕的是,现在有一个防火墙背后的滩头,现在可以对其他服务器和服务进行攻击。通过这种方式,SQL注入可以提供对所有公司或个人数据的访问。

从黑客的角度来看,与破门一样重要的黑客攻击的组成部分是保密的。设置某种“警报”是他们想要做的最后一件事。他们的渗透工作需要时间,并且如果发现盗窃(例如身份盗窃或信用卡盗窃的价值信息),盗窃数据的价值通常会下降。因此,SQL注入攻击通常会在数月后发现,并且在某些情况下会在数年后发现。

另外,如果彻底破坏是意图的话,那么一旦获得了运行命令的访问权限,就不会有数据库中可以做的坏事。使用单个SQL命令可以永久删除整个表。然而,更复杂的SQL注入攻击可能涉及大型数据库的大量损坏,甚至会破坏备份副本。

防御SQL注入

由于Web站点需要持续访问数据库,因此防火墙对SQL注入攻击提供很少或根本没有防御措施。您的网站是公开的,并且必须设置防火墙以允许每个站点访问者访问您的数据库,通常通过端口80/443访问。

防病毒程序在阻止SQL注入攻击方面同样无效。它们旨在发现和阻止完全不同类型的传入数据。

最常用的SQL注入防御由两个组件组成。首先是对所有服务器,服务和应用程序进行例行更新和修补,这当然有许多优点并且是常见的做法。然后,制作并使用编写良好且经过严格测试的网站代码,禁止意外的SQL命令。

根据定义,这两种防御措施足以阻止任何SQL注入攻击。那么,为什么网站漏洞和风险在上升,为什么更频繁地发生成功的攻击呢?答案很简单,并且组合成一个令人畏缩的列表:

  • 网站上的服务器,应用程序和代码量正在增加

  • 这些服务器,应用程序和代码语言有时以不可预知的方式彼此交互

  • 更新和补丁的数量和频率正在增加

  • IT部门正在用更少的人员进行更多的工作,并且推迟了一些活动,如更新

  • IT员工的流失和裁员有时会在安全日常事务中留下伪装的漏洞

  • 自动安装每个补丁和更新通常会产生不需要的副作用

  • 遗留代码通常在更新站点时重复使用,有时会在代码过时后很久才将代码写入旧标准中

  • 试图进行黑客攻击的人数和可用于简化黑客攻击的工具数量几乎呈指数级增长

越来越多的拥有巨大风险因素和庞大网络“足迹”的公司即将得出结论:补贴一切,雇用更多员工来观察现有员工的工作已不再可行。

网站扫描作为SQL注入治疗

SQL注入攻击(以及所有其他基于Web的攻击)的新解决方案是将有限且有价值的IT时间集中在实际存在的严重风险上,而不是使用霰弹枪方法并将每种可能的修复应用于每个服务器,每个应用程序和每一页代码是否需要。这种新方法就像让医生评估患者,并禁止一种治疗所需的药物,而不是让患者直接到药房去获得每种可能的药物并一次性全部服用。

因此,通过让经验丰富的第三方专业人员(如BeyondSecurity)使用成千上万的已知攻击列表检查(扫描)网站,然后报告相对较少(通常少于十几个)严重问题,可以实现更高的安全性。

网站扫描是在发现并报告已知风险的基础上进行的。常见的黑客攻击是非常“公共”的活动。这些工具被广泛推广。技术广泛传播于公共论坛。即使是新方法在首次使用几小时或几天内就会公开,这要归功于像SecuriTeam.com和其他人一样监视并广泛警告其他人。

自动扫描服务WSSA是一项基于网络的服务,它将所有已知风险汇编成家庭和所有家庭,汇总到一个单独的数据库中,这些数据库需要花费多年的时间进行编译,并且需要每天维护数小时。使用此数据库WSSA可以评估任何网站,并根据其相对重要性生成一份真实和现有风险评估报告 - 通常可在几小时内完成,且不会影响正在进行的现场活动。

现在,您可以花费宝贵的IT人员时间并直接处理SQL注入等实际风险,而不是花费数百小时来安装补丁和更新,其中大多数您不需要或处理的风险很小,可以忽略不计。


以上是关于SQL注入:弱的网络应用代码可以让黑客访问你的数据库和网络的主要内容,如果未能解决你的问题,请参考以下文章

黑客技术了解一下sql注入

SQL注入

js注入,黑客之路必备!

SQL注入

SQL注入原理

代码演示:什么是SQL注入攻击?