如何入侵网站窃取数据SQL会员教程

数据是信息系统最重要的组成部分之一。组织使用数据库驱动的 Web 应用程序从客户那里获取数据。SQL是结构化查询语言的缩写。它用于检索和操作数据库中的所有数据。

什么是 SQL 注入?

SQL 注入是一种攻击动态 SQL 语句以注释掉语句的某些部分或附加一个始终为真的条件。它利用设计不佳的 Web 应用程序中的设计缺陷,利用 SQL 语句执行恶意 SQL 代码。

在本教程中,您将学习 SQL 注入黑客技术以及如何保护 Web 应用程序免受此类攻击。

SQL 注入的工作原理

可以使用 SQL 注入执行的攻击类型因数据库引擎的类型而异。攻击对动态 SQL 语句有效。动态语句是在运行时使用来自 Web 表单或 URI 查询字符串的参数密码生成的语句。

让我们考虑一个带有登录表单的简单 Web 应用程序。HTML 表单的代码如下所示。

<form action='index.php' method="post">

<input type="email" name="email" required="required"/>

<input type="密码" name="密码"/>

<input type="checkbox" name="remember_me" value="记住我"/>

<input type="提交" value="提交"/>

</表格>
这里,

上面的表单接受电子邮件地址和密码,然后将它们提交到名为 index.php 的PHP文件。
它可以选择将登录会话存储在 cookie 中。我们从 remember_me 复选框中推断出这一点。它使用post方法提交数据。这意味着这些值不会显示在 URL 中。
假设后台查用户ID的语句如下

SELECT * FROM users WHERE email = $_POST['email'] AND password = md5($_POST['password']);

上面的语句直接使用 $_POST[] 数组的值而不对它们进行清理。
密码使用MD5算法加密。
我们将使用 sqlfiddle 来说明 SQL 注入攻击。在 Web 浏览器中打开 URL http://sqlfiddle.com/ 。您将获得以下窗口。

注意:您将必须编写 SQL 语句

图片[1]-如何入侵网站窃取数据SQL会员教程-可能资源网

步骤 1)在左窗格中输入此代码

创建表用户
id INT NOT NULL AUTO_INCREMENT,
电子邮件 VARCHAR(45) NULL,
密码 VARCHAR(45) NULL,
主键 (id));

插入用户(电子邮件、密码)值 (‘m@m.com’,md5(‘abc’));
步骤 2) 单击构建架构

步骤 3)在右侧窗格中输入此代码

从用户中选择 *;

步骤 4)单击运行 SQL。您将看到以下结果

图片[2]-如何入侵网站窃取数据SQL会员教程-可能资源网

假设用户提供admin@admin.sys和1234 作为密码。对数据库执行的语句是

SELECT * FROM users WHERE email = ‘admin@admin.sys’ AND password = md5(‘1234’);

可以通过注释掉密码部分并附加一个始终为真的条件来利用上述代码。假设攻击者在电子邮件地址字段中提供了以下输入。

xxx@xxx.xxx’ 或 1 = 1 限制 1 — ‘ ]

xxx 为密码。

生成的动态语句如下。

SELECT * FROM users WHERE email = ‘xxx@xxx.xxx’ OR 1 = 1 LIMIT 1 — ‘ ] AND password = md5(‘1234’);

这里,

xxx@xxx.xxx以单引号结尾,完成字符串引号
OR 1 = 1 LIMIT 1 是一个条件,它永远为真,并将返回的结果限制为只有一条记录。
— ‘ AND … 是删除密码部分的 SQL 注释。
复制上面的SQL语句,粘贴到SQL FiddleRun SQL文本框中,如下图

图片[3]-如何入侵网站窃取数据SQL会员教程-可能资源网

SQL 注入 Web 应用程序

我们在http://www.techpanda.org/有一个简单的 Web 应用程序 ,它容易受到 SQL 注入攻击,仅用于演示目的。上面的 HTML 表单代码取自登录页面。该应用程序提供基本的安全性,例如清理电子邮件字段。这意味着我们上面的代码不能用来绕过登录。

为了解决这个问题,我们可以改为利用密码字段。下图显示了您必须遵循的步骤

图片[4]-如何入侵网站窃取数据SQL会员教程-可能资源网

假设攻击者提供以下输入

  • 第 1 步:输入 xxx@xxx.xxx 作为电子邮件地址
  • 第 2 步:输入 xxx’) 或 1 = 1 — ]
入侵别人网站窃取数据
  • 点击提交按钮
  • 您将被引导至仪表板

生成的SQL语句如下

SELECT * FROM users WHERE email = ‘xxx@xxx.xxx’ AND password = md5(‘xxx’) OR 1 = 1 — ]’);

下图说明了已生成的语句。

图片[6]-如何入侵网站窃取数据SQL会员教程-可能资源网

这里,

  • 该语句智能地假定使用 md5 加密
  • 完成单引号和右括号
  • 将条件附加到始终为真的语句

通常,成功的 SQL 注入攻击会尝试使用多种不同的技术(例如上面演示的技术)来执行成功的攻击。

其他 SQL 注入攻击类型

SQL 注入比仅仅通过登录算法造成的危害更大。一些攻击包括

  • 删除数据
  • 更新数据
  • 插入数据
  • 在服务器上执行可以下载安装木马等恶意程序的命令
  • 将信用卡详细信息、电子邮件和密码等有价值的数据导出到攻击者的远程服务器
  • 获取用户登录详细信息等

上面的列表并不详尽;它只是让您了解什么是 SQL 注入

SQL 注入自动化工具

在上面的示例中,我们基于对 SQL 的广泛了解使用了手动攻击技术。有一些自动化工具可以帮助您在尽可能短的时间内更有效地执行攻击。这些工具包括

如何防范SQL注入攻击

组织可以采用以下策略来保护自己免受 SQL 注入攻击。

  • 永远不应信任用户输入——在​​将其用于动态 SQL 语句之前,必须始终对其进行清理。
  • 存储过程——这些可以封装 SQL 语句并将所有输入视为参数。
  • 准备好的语句——准备好的语句通过首先创建 SQL 语句然后将所有提交的用户数据视为参数来工作。这对 SQL 语句的语法没有影响。
  • 正则表达式——这些可用于检测潜在的有害代码并在执行 SQL 语句之前将其删除。
  • 数据库连接用户访问权限——只应向用于连接数据库的帐户授予必要的访问权限。这有助于减少 SQL 语句可在服务器上执行的操作。
  • 错误消息——这些不应透露敏感信息以及错误发生的确切位置。简单的自定义错误消息,例如“抱歉,我们遇到技术错误。已联系技术团队。请稍后再试”可以用来代替显示导致错误的SQL语句。

黑客活动:使用 Havij 进行 SQL 注入

在这个实际场景中,我们将使用 Havij Advanced SQL Injection 程序来扫描网站中的漏洞。

注意:您的防病毒程序可能会根据其性质对其进行标记。您应该将其添加到排除列表或暂停您的防病毒软件。

下图显示了 Havij 的主窗口

入侵别人网站窃取数据

上述工具可用于评估网站/应用程序的漏洞。

概括

  • SQL 注入是一种利用不良 SQL 语句的攻击类型
  • SQL 注入可用于绕过登录算法、检索、插入、更新和删除数据。
  • SQL注入工具包括SQLMap、SQLPing、SQLSmack等。
  • 在编写 SQL 语句时制定好的安全策略有助于减少 SQL 注入攻击。
THE END
抢沙发

请登录后发表评论

    暂无评论内容

相关推荐

定时自动备份mysql数据库

定时自动备份mysql数据库-可能资源网
Linux自动备份mysql数据库(含docker部署的) 此处以docker部署的mysql为例 创建备份脚本 脚本内容 首先使用bash命令创建一个sh脚本文件并赋予执行权限 Bash touch Auto_backup.sh && c...
可能的头像-可能资源网可能1年前
0119

iapp 简源的登录注册UI

iapp 简源的登录注册UI-可能资源网
分享简源的登录注册UI 纯原创写了一些基础的不能为空和长度判断具体的登录和注册功能需要自己自行扩展 项目跑起来才可以看到完整的样子这个登录注册页面一定要搭配组件来使用如果那三个with组件...
可能的头像-可能资源网可能23天前
017

抓包token

抓包token-可能资源网
工具:小黄鸟 虚拟机; MT管理器仅需要安装在虚拟机。前提工作 :在虚拟机安装好 微信 MT管理器。操作方法:(第一步):真机-安装小黄鸟真机打开小黄鸟的软件设置导出ca证书打开虚拟机:文件传...
可能的头像-可能资源网可能12个月前
0382

原生ip有什么用?如何买到真正的原生ISP IP?

原生ip有什么用?如何买到真正的原生ISP IP?-可能资源网
为什么要原生IP? 事实上,很多业务都需要用到原生ip,也就是isp ip,可以理解为国外的住宅IP。 我举几个例子:一就是甲骨文的注册,如果你不是在本地注册,那么“hosting”或者商业IP是无法通...
可能的头像-可能资源网可能12个月前
0456

unity3d游戏实现无线跳跃

unity3d游戏实现无线跳跃-可能资源网unity3d游戏实现无线跳跃-可能资源网unity3d游戏实现无线跳跃-可能资源网
+3
unity3d游戏实现无线跳跃-可能资源网
可能的头像-可能资源网可能1个月前
014

在线图片加水印源码

在线图片加水印源码-可能资源网
源码介绍 专门用于给图片加水印打码的工具,完全基于浏览器本地API, 无任何网络请求(特别适合身份证等敏感证件),可用于网站发表图文文章,社区等等,有效防止别人盗图使用! 安装教程 上传...
可能的头像-可能资源网可能3个月前
0125