广告
返回顶部
首页 > 资讯 > 数据库 >sql注入是什么
  • 454
分享到

sql注入是什么

2024-04-02 19:04:59 454人浏览 八月长安
摘要

这篇文章主要为大家展示了“sql注入是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sql注入是什么”这篇文章吧。认识SQL注入最开始就从最简单的开始,进入

这篇文章主要为大家展示了“sql注入是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sql注入是什么”这篇文章吧。

认识SQL注入

最开始就从最简单的开始,进入到less-1开始我们的SQL注入学习之旅。

通过改变Http://localhost/sqlilabs/Less-1/?id=3的id值,页面上呈现不同的内容(username,passWord)。

那么我们就可以猜测在后台中的SQL语句就是根据前台传入的id值来去对应的数据。

那么SQL语句的写法为:

select username,password from table where id=input

判断存在SQL语句

接下来进行做测试,使用以下的语句进行测试:

http://localhost/sqlilabs/Less-1/?id=3 and 1=1
http://localhost/sqlilabs/Less-1/?id=3 and 1=2

这个时候页面没有任何的变化,这是不和符合我们预期的结果,因为当id=3 and 1=2时,SQL语句变为select username,password from table where id=3 and 1=2页面应该不会有内容。

确定存在SQL语句

使用了之前的语句不行之后,我们使用如下的语句:

http://localhost/sqlilabs/Less-1/?id=3'

当URl是以上的SQL语句时,页面上显示SQL执行错误信息You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ''3'' LIMIT 0,1' at line 1

其中最关键的错误信息是:

''3'' LIMIT 0,1'

最外层的引号是Mysql出错时自动加上的。那么实际的SQL语句是 '3'' LIMIT 0,1。我们发现在我们输入的3'被引号包围了,那么我们之前猜测的select username,password from table where id=input有误,实际的后台的SQL语句应该为:

select username,password from table where id='input'

SQL注入验证

在确定存在了SQL注入之后,同时知道了后台SQL写法,那么此时我们就可以注入自己的SQL注入的代码。

由于我们可以控制id的值,那么最终输入的SQL语句会变为:

select username,password from table where id='input 攻击代码'

此时我们就可以构造如下的payload来验证我们的想法。由于我们的输入是被一对单引号包裹的,所以我们输入的语句必须要能够不被单引号影响。要么闭合单引号,要么注释掉单引号。(可以参考前面的文章)

#闭合单引号
id=1 and '1' = '1 # 
#注释单引号
id=1 and 1=1 # 或者 id=1 and 1=1--+

当我们使用上面的这3个payload之后,页面显示的结果是符合预期的。那么我们也可以确定id参数确实是存在SQL注入的。后台的SQL语句的写法也的确是select username,password from table where id='input'

在确定了SQL语句之后,接下里就是注入SQL注入代码了。

执行SQL注入

使用SQL语句来进行脱裤,这一点是十分关键的。如果仅仅是知道存在SQL注入但是无法脱裤,那么实际上这个漏洞对于该网站的危害性还是很小的。如何构造正确的SQL语句进行脱裤,这一点也是十分重要的,在下一篇文章中将会详细地讲解SQL注入的详细的步骤。

注入类型判断

在本题中的SQL语句就称之为字符型的SQL注入,因为我们的输入在SQL语句执行的过程中被单引号所包括,其实在SQL语句执行中,这个id参数被当做是一个字符类型的数据。除了有字符型的SQL注入,当然还有数字型的SQL语句。那么如何区分这两者呢?

字符型SQL注入

在确定存在SQL语句这节中,当我们输入id=3'是页面的出错信息是 '3'' LIMIT 0,1。我们发现3'被引号所包围,那么说明这个就是一个字符型的SQL注入了。

数字型SQl注入

在less-2中,当我们同样输入id=3'时,页面的出错信息是 ' LIMIT 0,1,那么就说明是一个数字型的注入了同时还存在limit关键字,那么我们猜测less-2中的SQL注入为:

select username,password from table where id=input limit 0,1

以上都可以通过查看源代码的方式来进行验证。

SQL语句判断

但是很多时候我们通过单引号的方式并不能返回sql执行语句的错误信息,就无法通过错误信息得到注入类型。因为很多时候在后台的SQL语句会有各种千奇百怪的写法。

在less-3和less-4中的写法就是如下:

$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1"

在less-3中使用了括号来包裹用户的输入

$id = '"' . $id . '"';
$sql="SELECT * FROM users WHERE id=($id) LIMIT 0,1";

在less-4中使用了双引号来包裹用户的输入,那么当你即使加上了单引号进行测试的时候还是无法出发SQL语句执行错误。

所以说很多时候仅仅使用单一的符号进行判断是完全不够的,要多使用不同类型的符号来进行测试的判断,使用包括',",\,(,=,&等等字符,甚至有时候还要使用其他的探查方法,因为你无法判断后台的SQL语句的写法,而且目前很多的网站开发人员已经有了一定的安全意识,可能常规的SQL探查语句也无法使用。关于其他跟多SQL注入的探查语句,网上有很多的资料。

以上是“sql注入是什么”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: sql注入是什么

本文链接: https://www.lsjlt.com/news/60041.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 什么是SQL注入
    这篇文章给大家分享的是有关什么是SQL注入的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1 .什么是sql注入(Sql injection)?Sql注入是一种将sql代码添加到输...
    99+
    2022-10-18
  • sql注入是什么
    这篇文章主要为大家展示了“sql注入是什么”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“sql注入是什么”这篇文章吧。认识SQL注入最开始就从最简单的开始,进入...
    99+
    2022-10-18
  • 什么是SQL注入(SQLi)
    什么是SQL注入? SQL注入(SQLi)通常被认为是一种注入攻击,其中攻击者可以执行恶意 SQL 语句。 它控制Web应用程序的数据库服务器。 由于SQL注入无助可能会影响使...
    99+
    2022-10-18
  • 什么是sql二次注入
    sql二次注入是指已存储的用户输入被读取后再次进入到sql查询语句中导致的注入,比如将数据存入到数据库中之后,开发者就认为数据是可信的,在下一次进行需要进行查询的时候,直接从数据库中取出了脏数据,没有进行检验和处理,这样就会造成sql二次注...
    99+
    2022-10-23
  • SQL注入指的是什么
    小编给大家分享一下SQL注入指的是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!SQL注入1.什么是SQL注入看一下下面的案...
    99+
    2022-10-18
  • SQL注入中sleep注入的原理是什么
    sleep()型的SQL注入是request发送后会产生一个timeout的delay,没有respond,相当于一种DDOS攻击,向数据库不停的发送request,不会很快释放连接,连接池会慢,导致数据库不响应,可以通过在mysql中禁止...
    99+
    2022-10-14
  • SQL宽字节注入是什么
    本篇内容介绍了“SQL宽字节注入是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基础知识宽字节在了解宽字节注入之前,我们要了解一下什么是...
    99+
    2023-07-05
  • sql注入的原理是什么
    这篇文章主要介绍了sql注入的原理是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. 首先了解SQL注入的原理:  SQL Injec...
    99+
    2022-10-18
  • sql注入回显点是什么
    sql注入回显点是指sql查询结果显示在页面上位置,有回显点的sql注入叫做回显点注入,比如一篇文章的标题、作者、时间、内容等等,这些都可能成为回显点。...
    99+
    2022-10-04
  • 什么是SQL注入攻击,解释如何防范SQL注入攻击?
    1、什么是SQL注入攻击,解释如何防范SQL注入攻击。 SQL注入攻击是一种常见的网络攻击方式,攻击者通过在Web应用程序的查询语句中插入恶意代码,从而获取数据库中的敏感信息或者执行其他恶意操作。 为了防范SQL注入攻击,可以采取以下措施:...
    99+
    2023-08-30
    sql 数据库 面试
  • sql注入漏洞是什么意思
    今天就跟大家聊聊有关sql注入漏洞是什么意思,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。        &...
    99+
    2022-10-18
  • sql注入指的是什么意思
    这篇文章主要介绍了sql注入指的是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。sql注入一般可以通过网页表单直接输入。sql注入是...
    99+
    2022-10-18
  • sql注入攻击指的是什么
    小编给大家分享一下sql注入攻击指的是什么,希望大家阅读完这篇文章后大所收获,下面让我们一起去探讨吧!随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参...
    99+
    2022-10-18
  • sql注入里布尔型是什么
    sql注入里布尔型是一种盲注,称为布尔盲注,因此页面回显结果肯定要能被判别成True和False,通过利用页面返回不同,逐个猜解数据,例如:当我们访问http://127.0.0.1:8080/id=1,页面返回True,而当我们访问htt...
    99+
    2022-10-10
  • sql注入基本原理是什么
    这篇文章主要介绍了sql注入基本原理是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。SQL注入基本原理WEB技术发展日新月异,但是徒手拼...
    99+
    2022-10-18
  • SQL注入速查的方法是什么
    本篇内容主要讲解“SQL注入速查的方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“SQL注入速查的方法是什么”吧!0x01 MysqlMysq...
    99+
    2022-10-18
  • sql手工注入的方法是什么
    这篇文章主要介绍“sql手工注入的方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“sql手工注入的方法是什么”文章能帮助大家解决问题。判断注入点1.单引号法...
    99+
    2022-10-19
  • web中sql注入的目的是什么
    web中sql注入是以网站数据库为目标,利用web应用程序对特殊字符串不完全过滤的缺陷,通过精心构造字符串达到非法访问网站数据库获取机密或者在网站数据库非法执行命令的目的。...
    99+
    2022-10-05
  • sql注入的一般流程是什么
    sql注入的一般流程是:判断环境,寻找注入点,判断数据库类型。根据注入参数类型,重构SQL语句的原貌。将查询条件替换成SQL语句,猜解表名以及字段名。在表名和列名猜解成功后,再使用SQL语句得出字段的值。...
    99+
    2022-10-08
  • sql注入攻击针对的是什么
    sql注入攻击针对的是数据库,以网站数据库为目标,利用web应用程序对特殊字符串不完全过滤的缺陷,通过精心构造字符串达到非法访问网站数据库获取机密或者在网站数据库非法执行命令的目的。...
    99+
    2022-10-24
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作