SQL注入全过程的深入分析是怎样的

技术SQL注入全过程的深入分析是怎样的这篇文章将为大家详细讲解有关SQL注入全过程的深入分析是怎样的,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。分析了SQL注入全过程,

这篇文章会详细说明SQL注入的整个过程是如何深入分析的,文章的内容也是高质量的,所以边肖会分享给大家参考。希望你看完这篇文章后有所了解。

SQL注入的整个过程分析如下:

初步注入--绕过验证,直接登录

公司网站登陆框如下:

可以看到,除了账号密码,还有一个公司名称输入框。根据输入框的形式,不难介绍SQL的编写如下:复制代码代码如下:

从表中选择*其中名称='XX '和密码='YY '和公司='ZZ '

发现前两个勾选了,第三个输入框忽略了。这就是漏洞!开始注射,并在输入框中输入以下内容:

用户名留空,密码留空。在这种情况下,单击登录按钮后,您实际上已成功登录。

让我们看看最终的SQL,找出原因:复制代码如下:

从表中选择*其中名称='SQL inject '和密码='和Corp='或1=1 -'

从代码中可以看出,单引号前半部分关闭,后半部分单引号用“-”注释掉,中间有一个永久条件“1=1”,导致任何字符都可以成功登录。然而,Sql注入的危害不仅仅是匿名登录。

中级注入--借助异常获取信息

现在我们在第三个输入框中写道:

Or1=(选择@@@版本)如下所示:

后台的SQL变成这样:

选择* fromtablewhenname=' sqlinobject '和password=' and corp=' ' or 1=(SELECT @@VERSION)-'判断条件改为1=(SELECT @ @ VERSION),

这样写肯定会导致错误,但错误正是我们想要的。单击登录后,页面上会显示以下信息:

将nvarchar值“Microsoft SQL Server 2008(SP3)-10 . 0 . 5500 . 0(X64)2011年9月21日22:45:45版权所有(c)1988-2008 Microsoft Corporation Developer Edition(64位)在Windows NT 6.1 X64上(构建7601: Service Pack 1)”转换为数据类型int时转换失败。

可怕的事情发生了,服务器的操作系统和SQL Server版本信息实际上是通过错误显示的。

危害扩大--获取服务器所有的库名、表名、字段名

然后,我们在输入框中输入以下信息:复制代码如下:

t '或1=(从主列表中选择前1名.名称不在的系统数据库(从主数据库中选择前0名.sysdatabases)) -

这时发现第三个输入框有字长的限制,但是客户端的这个限制是没有用的。

可以通过谷歌浏览器直接移除。

点击登录,返回信息如下:

将nvarchar值“master”转换为数据类型int时转换失败。

数据库名“master”异常显示!依次更改上面SQL语句中的序列号,

您可以获得服务器上所有数据库的名称。

接下来,输入信息如下:复制代码代码如下:

' b '或1=(从主列表中选择前1名.其中xtype='U '且名称不在(SELECT FROM master前1名.sysobjects,其中xtype=' U ')-

返回的信息如下:

将nvarchar值“spt_fallback_db”转换为数据类型int时转换失败。

我们得到了主数据库中的第一个表名:“spt_fallback_db”,

同上,依次更改序号,就可以得到这个库的所有表名。

现在让我们以“spt_fallback_db”表为例,尝试获取表中的所有字段名。在输入框中输入以下代码:复制代码代码如下:

' b '或1=(SELECT top 1主.syscolumns.name FROM master.主系统列.sysobjects WHERE主服务器.syscolumns.id=master.sysobjects.id和master.sysobjects . name=' SPT _ fallback _ db ');

因此,错误消息如下:

将nvarchar值“xserver_name”转换为数据类型int时转换失败。

这样,第一个字段名“xserver_name”就出来了。通过依次更改序列号,可以遍历所有字段名称。

最终目的--获取数据库中的数据

在这一点上,我们知道所有的数据库、表格和字段都可以通过SQL注入获得。为了防止本文成为注入教程,不再描述获取数据的代码,本文的目的已经达到。SQL注入是什么意思?这意味着数据库中的所有数据都可能被窃取。

知道这种危害后,还有人能忽视SQL注入的脆弱性吗?

结语

关于安全,总结以下几点:

1.时刻警惕用户输入的内容。

2.只有客户端的身份验证等于没有身份验证。

3.不要向用户公开服务器错误信息。

另外,我想补充几点:SQL注入不仅可以通过输入框实现,还可以通过网址实现。

2.除了服务器错误页面,还有其他获取数据库信息的方法。

3.注入行为可以用软件模拟,窃取信息的速度比你想象的要快得多。

4.漏洞与语言平台无关。

我希望在这里分享对SQL注入整个过程的深入分析。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/127863.html

(0)

相关推荐

  • 战国四大名将,战国四大名将分别是哪四位

    技术战国四大名将,战国四大名将分别是哪四位战国时代是中国历史上军力最为鼎盛,名将辈出的时代之一,其中最为耀眼的便是秦之白起战国四大名将、王翦,赵之廉颇、李牧,此四人也后来被评为战国四大名将!1、白起,战国时秦国郿县人,与

    生活 2021年10月23日
  • 如何使用QGIS绘制铁路轨迹geojson

    技术如何使用QGIS绘制铁路轨迹geojson这期内容当中小编将会给大家带来有关如何使用QGIS绘制铁路轨迹geojson,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. 下载并安装

    攻略 2021年11月10日
  • 大熊猫外貌特征描写,要介绍大熊猫的样子怎么写

    技术大熊猫外貌特征描写,要介绍大熊猫的样子怎么写在介绍大熊猫的样子之前,先对大熊猫做一个简单介绍 大熊猫已在地球上生存了至少800万年,被誉为“活化石”和“中国国宝”,世界自然基金会的形象大使,是世界生物多样性保护的旗舰

    生活 2021年10月24日
  • Fixed Table统计信息

    技术Fixed Table统计信息 Fixed Table统计信息Fixed Table统计信息
    2 YEARS AGOORACLEOracle有大量的内部视图供DBA使用,这些视图底层表以X$开头,F

    礼包 2021年11月19日
  • 微信小程序怎么嵌入python代码(python如何编写微信小程序)

    技术python如何实现微信小程序反编译这篇文章主要介绍“python如何实现微信小程序反编译”,在日常操作中,相信很多人在python如何实现微信小程序反编译问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法

    攻略 2021年12月13日
  • 整流桥KBP307-ASEMI如何测量好坏之电阻测试法

    技术整流桥KBP307-ASEMI如何测量好坏之电阻测试法 整流桥KBP307-ASEMI如何测量好坏之电阻测试法编辑-Z
    测量整流桥好坏的方法一般有两种,一种是电阻测试法,一种是压降测试法。整流桥KB

    礼包 2021年10月27日