SQL注入为什么要用select 1,2,3...来确认注入点

为什么select后面要接数字1,2,3

select 之后可以接一串数字:1,2,3…这只是一个例子,其实这串数字并不一定要按从小到大排列,也不一定从1开始,这串数字的值和顺序是任意的,甚至可以是重复的,如:11,465,7461,35 或11,11,11,11,数字串的长度也是任意的,我们想获得多少列的数据,就写多少个数字。

select语句一般在指明要查询的内容属性(如select id)后,要加from指明是从哪个数据库表中获得数据。

select直接加数字串时,可以不写后面的表名,那么它输出的内容就是我们select后的数字,这时我们写的一串数字就是一个数组(或1个行向量)。

这时select实际上没有向任何一个数据库查询数据,即查询命令不指向任何数据库的表。返回值就是我们输入的这个数组,这时它是个1行n列的表,表的属性名和值都是我们输入的数组,如下图:

在这里插入图片描述

应用SQL注入中,我们可以利用它来进行一个快速测试。

在Union注入时,如果我们通过测试已经知道了前面语句的字段数,就可以写入union 注入语句,但存在一个问题,我们虽然可以通过注入获得想要的信息,但这些信息必须能够返回到我们手中,对于网页来说,如何能够让数据回显是至关重要的。例如一个网站的参数传递执行的查询有3个字段,很可能这些字段不是都显示在网页前端的,假如其中的1或2个字段的查询结果是会返回到前端的,那么我们就需要知道这3个字段中哪两个结果会回显,这个过程相当于找到数据库与前端显示的通道。

如果我们直接输入查询字段进行查询,语句会非常冗长,而且很可能还需要做很多次测试,这时候我们利用一个简单的select 1,2,3,根据显示在页面上的数字就可以知道哪个数字是这个“通道”,那么我们只需要把这个数字改成我们想查询的内容(如id,password),当数据爆破成功后,就会在窗口显示我们想要的结果。

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: SQL注入是一种攻击技术,它利用Web应用程序中的漏洞,向数据库中注入恶意代码。"union select 1,2,3"是一种常见的SQL注入攻击方式,它的目的是将查询结果合并到现有的查询中,以获取敏感信息或执行恶意操作。为了防止SQL注入攻击,开发人员应该采取一系列措施,如使用参数化查询、过滤输入、限制用户权限等。 ### 回答2: SQL注入是一种恶意攻击方法,攻击者试图通过修改应用程序的输入,来恶意地操作数据库,例如删除数据、修改数据或者获取敏感信息。SQL注入攻击的方式有很多种,其中一种常见的攻击方式是使用Union Select语句。 Union Select语句是一种将两个或多个SELECT语句的结果集合并在一起的方式。攻击者利用Union Select语句,可以将另一个SELECT语句的结果集添加到原始查询结果集中,从而获取更多的敏感数据。例如,攻击者可以使用以下代码: ``` SELECT username, password FROM users WHERE username='' UNION SELECT 1,2,3 FROM users ``` 上述代码中,攻击者通过在Union Select语句中添加“1,2,3”这个结果集,使得查询结果集包含了除了用户名和密码之外的另外三列数据。如果原始查询结果集中包含了敏感数据,这些额外的列可能会暴露更多的敏感信息。 为了防止SQL注入攻击,应用程序开发人员可以采取以下措施: 1.使用参数化查询语句。参数化查询语句不仅可以防止SQL注入攻击,还可以提高查询性能和代码的可读性和可维护性。 2.对输入数据进行验证和过滤。例如,限制用户名只包含字母和数字,防止攻击者使用特殊字符进行注入。 3.记录和监控数据库访问日志。记录日志可以帮助检测和防止SQL注入攻击,以及为后续的安全审计提供依据。 4.使用防火墙和IDS/IPS技术。防火墙和IDS/IPS技术可以检测和阻止具有攻击特征的流量,从而提高系统的安全性。 总之,在应用程序中使用合适的安全策略和技术,可以有效地防止SQL注入攻击。同时,开发者也要认识到,对于数据库的数据查询和处理需要严格甄别,不可以轻易地把所有用户输入和URL参数直接拼接到SQL语句中,应该进行有效的过滤和转义,避免开发过程中出现是否行的安全漏洞,从而确保应用程序和数据库的安全性。 ### 回答3: SQL注入是一种攻击技术,其目的是通过构造恶意输入数据来破坏数据库的完整性和保密性。其中,使用“UNION SELECT”操作符是SQL注入中常见的一种方式。 在SQL注入中,攻击者通过向数据库服务器发送恶意的SQL查询语句,来获取敏感信息或破坏数据库。例如,当攻击者将“UNION SELECT 1,2,3”注入到一个不安全的应用程序中时,他们可能会成功获取数据库中某些表的前三行记录,从而得到有关数据库的敏感信息。 这种攻击方法之所以有效,是因为数据库服务器无法区分合法的查询和恶意的查询。因此,攻击者可以通过注入合适的SQL代码来避开应用程序的安全措施,并从数据库中获取敏感信息。 为了防止SQL注入攻击,开发人员必须采取一系列的安全措施,包括使用参数化查询,严格限制数据输入,过滤掉恶意代码等等。此外,企业也可以使用安全软件和网络安全设备来检测和防止SQL注入攻击。 总之,SQL注入攻击是一种经常被黑客使用的攻击技术,可以通过使用“UNION SELECT”操作符来获取敏感信息或破坏数据库。开发人员必须采取一系列的安全措施,来防止这种攻击方法。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值