资料下载

免费的网络漏洞扫描仪

您需要了解的有关SQL注入攻击的所有信息&类型,SQLi代码示例,变体,漏洞& More

由管理员撰写。发表于 Web应用程序漏洞扫描程序

5 1 1 1 1 1 评分5.00(1投票)
压住他

SQL注入简介SQL注入攻击 是针对Web服务器,网站和Web应用程序的最受欢迎的攻击之一。一个相当受欢迎的网站可能会收到80到250之间的任意金额 SQL注入攻击 在一个 每天 这些数字很容易达到数千 SQL漏洞被披露 对公众。

本文旨在帮助网络工程师,管理员,安全专家和IT专业人员了解什么是 SQL注入 是通过逐步引导您 HTTP SQL注入攻击 使用真实代码执行。 

以下是我们将讨论的主题列表:

其他相关文章:

SQL注入攻击-基础

SQL注入 , 要么 SQLi  简而言之,是指 漏洞利用 通过滥用 Web应用程序数据库 。 一个 SQL注入攻击 将允许攻击者执行 恶意行为 通过使用数据库 特制的SQL命令。 SQL是最常用的数据库查询语言,非常适合攻击者进行攻击。

由于SQL注入攻击可以针对 广泛的应用,此攻击是最普遍且最严重的攻击之一 网络漏洞。以至于 注射攻击,例如SQL Injection,已放在第一位 OWASP的前十名 清单, 连续几次。

SQL注入攻击 可以让攻击者 提取, 修改, 删除资料 从一个 数据库, 反过来 影响数据机密性, 正直可用性 (因为攻击者可能会删除数据并破坏操作)。此外,SQL注入攻击可以用作升级攻击的跳板。

SQL注入漏洞示例

sql注入示例A Web应用程序 通常会与各种后端系统进行通信,包括 数据库。让我们来 HTML表格, 哪一个 将值插入数据库, 举个例子。 

填写并提交表单后,HTTP请求(通常是 开机自检 请求)发送到Web应用程序, 输入值 直接 包含在SQL语句中 将这些值插入到 数据库

唯一的办法 SQL注入漏洞 可能发生的是 Web应用程序信任用户的输入而未对其进行参数化 并使用准备好的语句。这是通过指示数据库执行查询的特定部分来完成的,而其余部分将被视为用户的输入。 

准备好的语句可确保数据库不会将用户输入中的某些字符解释为 SQL语句,因此允许攻击者 提交自己的SQL语句

注册下载Acunetix并执行免费网络&Web服务器漏洞扫描: //www.acunetix.com/vulnerability-scanner/online-scanner/

SQL注入示例: 以下 伪码 是一个简单的示例,显示了如何对用户进行身份验证:

//从POST请求中获取用户名和密码
用户名= request.post ['用户名']
密码= request.post ['password']

//容易受到SQL注入的语句
sql =“在用户名='” +用户名+“’AND密码=’” +密码+“’”的情况下从用户中选择ID

//数据库执行的SQL语句
db.exec(SQL)

如果用户输入 作为用户名和 酒吧 作为密码,数据库服务器将处理以下SQL语句:

在用户名=“ 富 ”和密码=“ 酒吧 ”的用户中选择ID

如预期执行时,这将返回 ID栏数据库条目 的对应 用户名密码.

利用SQL注入漏洞 

上面的例子是 容易受到SQL注入的攻击,因为无论用户在表单中输入什么 解释的 由数据库服务器作为 命令。例如,攻击者可以通过将密码字段设置为 ’OR 1 = 1

以下是SQL语句的外观。

在用户名='foo'和密码='pass'或1 = 1的用户中选择ID

从上面的语句中,我们可以看到用户的输入已更改了语句的功能。现在,如果提交的用户名等于,则返回ID列的值 , 密码等于 通过 , 要么 如果1等于1(将始终如此)。

使用此语句,仅用户名需要与数据库中的值匹配,因为要满足密码条件,提交的密码可以与数据库中的值匹配,或者如果1 = 1则可以对其进行验证。使用此技巧,攻击者可以 旁路网站的认证机制 对于任何其 用户名 已知的

为了进一步控制SQL语句,攻击者甚至可以 注释掉其余部分。例如,攻击者可以使用 双破折号 ( - )符号来注释掉语句的其余部分:

在用户名=“用户名”-'AND密码='bar'的用户中选择ID

以上声明的突出显示部分,或 双破折号, 将会 注释掉 因此 执行期间不考虑。这将再次使攻击者能够 绕过身份验证

SQL注入攻击的变体

重要的是要注意 的三个主要分类 SQL注入攻击,每种都有其特定的用途,并且只能在特定情况下使用。这些类别是:

带内SQL注入

我们前面看到的示例是带内攻击,因为使用了相同的通道发起攻击并获得了经过身份验证的结果。 带内攻击最常见的最容易利用 与其他SQL注入攻击相比。 

数据渗漏 使用 带内攻击 可以通过完成 错误讯息 通过SQL注入攻击或通过使用 UNION运算子 从而使攻击者可以插入自己的SQL语句。 

SQL注入

要么 推论SQL注入攻击 可能需要更长的时间执行,因为返回的唯一响应是形式为 布尔值。攻击者可以利用此漏洞发出请求并 找出差异 在里面 返回响应,它将确认发送的请求中是否包含 真正 要么 错误的结果 然后重建数据库结构和数据。

基于内容 攻击集中于返回的响应,例如 HTTP响应状态码 或者 响应数据本身。另一方面, 基于时间 攻击措施 响应延迟 由服务器发送,例如,延迟十秒钟可以确认请求返回了真实结果,而没有延迟意味着结果为假。 

带外SQL注入

带外攻击最不常见 SQLi 攻击 通常 最难执行 因为该攻击要求托管数据库的服务器将与攻击者的基础结构进行通信。如果发出请求的通道不一致或不够稳定,通常会使用此攻击。 带内 要么  盲目SQLi攻击 成功。 

概要

SQL注入攻击 要求Web应用程序将攻击者的输入传递给数据库,而无需使用准备好的SQL语句。 利用 一个 SQL注入漏洞 甚至可能允许攻击者访问仅在本地网络上可以访问的资源。

以来 SQL注入 从那开始 1998 它被广泛理解并易于使用 免费且随时可用的工具。大多数开发框架都内置了保护机制,可以帮助Web开发人员生成不容易受到攻击的Web应用程序。 SQL注入攻击.

这表明 防止SQL注入 漏洞 已经成为必需品。手动测试每个表单和参数不能很好地工作,这就是为什么使用诸如以下工具来自动化Web应用程序安全性测试很有意义的原因 Acunetix,它不仅会发现SQL Injection实例,还会发现其他已知漏洞。

返回“ Web应用程序安全扫描器”部分

压住他

文章 阅读下一篇:

CCENT / CCNA

思科公司 路由器

  • SSL WebVPN
  • 保护路由器
  • 基于策略的路由
  • 棒上路由器

虚拟专用网 安全

  • 了解DMVPN
  • GRE / IPSec配置
  • 站点到站点IPSec 虚拟专用网
  • IPSec模式

思科公司 救命

  • 视窗 8 虚拟专用网 客户端
  • 视窗 7的VPN客户端
  • CCP显示问题
  • 思科支持应用程序。

视窗 2012

  • 新的功能
  • 发牌
  • Hyper-V / VDI
  • 安装Hyper-V

的Linux

  • 文件权限
  • Webmin
  • 群组-用户
  • Samba设置