什么是SQL注入?SQL注入,也称为SQLI,是一种常见的攻击媒介,它使用恶意SQL代码进行后端数据库操作,以访问不打算显示的信息。此信息可能包括任意数量的项目,包括敏感的公司数据、用户列表或私人客户详细信息。
SQL注入对业务的影响是深远的。一次成功的攻击可能会导致未经授权查看用户列表、删除整个表,并且在某些情况下,攻击者会获得对数据库的管理权限,所有这些都会对企业造成极大的损害。
在计算SQLi的潜在成本时,重要的是要考虑到如果电话号码、地址和信用卡详细信息等个人信息被盗,客户将失去信任。虽然此向量可用于攻击任何SQL数据库,但网站是最常见的目标。
SQL是一种标准化语言,用于访问和操作数据库,为每个用户构建可定制的数据视图。SQL查询用于执行命令,例如数据检索、更新和记录删除。不同的SQL元素执行这些任务,例如,根据用户提供的参数使用SELECT语句检索数据的查询。
典型的eStore的SQL数据库查询可能如下所示:
选择ItemName,ItemDescription
其中ItemNumber=ItemNumber
由此,Web应用程序构建一个字符串查询,该查询作为单个SQL语句发送到数据库:
选择ItemName,ItemDescription
WHEREItemNumber="&Request.QueryString("ItemID")
用户提供的输入?http://www.estore.com/items/items.asp?itemid=999?然后可以生成以下SQL查询:
选择ItemName,ItemDescription
您可以从语法中了解到,此查询提供了项目编号999的名称和描述。
SQL注入通常分为三类:In-bandSQLi(Classic)、InferentialSQLi(Blind)和Out-of-bandSQLi。您可以根据SQL注入用于访问后端数据的方法及其破坏潜力对SQL注入类型进行分类。
攻击者使用相同的通信渠道发起攻击并收集结果。带内SQLi的简单性和高效性使其成为最常见的SQLi攻击类型之一。此方法有两个子变体:
攻击者向服务器发送数据有效载荷并观察服务器的响应和行为以了解有关其结构的更多信息。这种方法称为盲SQLi,因为数据不会从网站数据库传输到攻击者,因此攻击者无法看到有关带内攻击的信息。
SQL盲注依赖于服务器的响应和行为模式,因此它们通常执行起来较慢,但可能同样有害。SQL盲注可分为以下几类:
只有在Web应用程序使用的数据库服务器上启用了某些功能时,攻击者才能执行这种形式的攻击。这种形式的攻击主要用作带内和推理SQLi技术的替代方法。
当攻击者无法使用相同的通道发起攻击和收集信息,或者服务器速度太慢或不稳定而无法执行这些操作时,将执行带外SQLi。这些技术依赖于服务器创建DNS或HTTP请求以将数据传输给攻击者的能力。
希望执行SQL注入的攻击者操纵标准SQL查询以利用数据库中未经验证的输入漏洞。可以通过多种方式执行此攻击向量,此处将展示其中的几种方式,让您大致了解SQLI的工作原理。
例如,上述提取特定产品信息的输入可以更改为?http://www.estore.com/items/items.asp?itemid=999或1=1。
结果,相应的SQL查询如下所示:
选择ItemName,ItemDescription
其中ItemNumber=999或1=1

攻击者还能够利用错误过滤的字符来更改SQL命令,包括使用分号分隔两个字段。
比如这个输入?http://www.estore.com/items/iteams.asp?itemid=999;DROPTABLE用户?将生成以下SQL查询:
选择ItemName,ItemDescription
其中项目编号=999;删除表用户
结果,可能会删除整个用户数据库。
另一种操作SQL查询的方法是使用UNIONSELECT语句。这结合了两个不相关的SELECT查询以从不同的数据库表中检索数据。
例如,输入?http://www.estore.com/items/items.asp?itemid=999UNIONSELECTuser-name,passwordFROMUSERS?产生如下SQL查询:
选择ItemName,ItemDescription
WHEREItemID='999'UNIONSELECTUsername,PasswordFROMUsers;
使用UNIONSELECT语句,此查询将对项目999的名称和描述的请求与另一个为数据库中的每个用户提取名称和密码的请求组合在一起。
SQL注入与OS命令执行相结合:Accellion攻击
Accellion是FileTransferAppliance(FTA)的制造商,FTA是一种网络设备,广泛部署在世界各地的组织中,用于移动大型敏感文件。该产品已有20多年的历史,现在已经到了生命周期的尽头。
FTA是一种独特的、高度复杂的攻击的目标,该攻击将SQL注入与操作系统命令执行相结合。专家推测Accellion攻击是由与金融犯罪集团FIN11和勒索软件集团Clop有联系的黑客实施的。该攻击表明,SQL注入不仅是一种影响Web应用程序或Web服务的攻击,还可以用于破坏后端系统和泄露数据。
Accellion漏洞是一种供应链攻击,影响了许多部署了FTA设备的组织。其中包括新西兰储备银行、华盛顿州、澳大利亚证券和投资委员会、电信巨头新加坡电信和安全软件制造商Qualys,以及许多其他机构。
根据Accellion委托的一份报告,SQLi和命令执行攻击的结合工作如下:
这提高了SQL注入攻击的知名度,展示了如何将它们用作对关键企业基础设施进行更具破坏性的攻击的网关。
有几种有效的方法可以防止SQLI攻击的发生,并在它们发生时进行防护。第一步是输入验证(又名清理),这是编写可以识别非法用户输入的代码的做法。
虽然输入验证应始终被视为最佳实践,但它很少是万无一失的解决方案。现实是,在大多数情况下,绘制出所有合法和非法输入是根本不可行的——至少在不导致大量误报的情况下是不可行的,这会干扰用户体验和应用程序的功能。
出于这个原因,通常使用Web应用程序防火墙(WAF)来过滤掉SQLI以及其他在线威胁。为此,WAF通常依赖于大量且不断更新的精心制作的签名列表,这些签名允许它像手术一样清除恶意SQL查询。通常,这样的列表包含用于解决特定攻击向量的签名,并定期修补以引入针对新发现漏洞的阻止规则。
现代Web应用程序防火墙还经常与其他安全解决方案集成。WAF可以从这些信息中接收进一步增强其安全功能的附加信息。例如,遇到可疑但并非彻头彻尾的恶意输入的Web应用程序防火墙可能会在决定阻止请求之前使用IP数据对其进行交叉验证。如果IP本身的声誉历史不佳,它只会阻止输入。
Imperva?基于云的WAF使用签名识别、IP信誉和其他安全方法来识别和阻止SQL注入,并最大限度地减少误报。WAF的功能由IncapRules增强——一个自定义安全规则引擎,支持对默认安全设置进行精细自定义,并创建额外的特定案例安全策略。我们的WAF还采用众包技术,确保针对任何用户的新威胁立即传播到整个用户群。这有助于快速响应新披露的漏洞和零日威胁。
本文来源:国外服务器--SQL注入的类型和示例(sql注入的类型和示例有哪些)
本文地址:https://www.idcbaba.com/guowai/4132.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



