SQL盲注详解

今天继续给大家介绍Linux运维相关知识,本文主要内容是SQL盲注详解。

免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!

一、SQL盲注详解

在SQL注入时,有些情况下我们的SQL语句执行结果可以直接显示到页面上,这通常是一些select查询语句,网站会把SQL语句执行的结果直接显示到页面上。
但是,有时,一些SQL注入语句却不会显示结果,这种情况,有些是因为SQL语句本身就没有返回信息,比如一些插入、删除的SQL语句,只会反馈该语句是否成功执行,还有些是因为网站内部逻辑屏蔽了查询结果,比如一些网站的登录页面,虽然也是select查询语句,但是只会根据是否查询到指定用户名、口令来有不同的反馈。
针对这种没有反馈结果的,我们就称之为SQL盲注。

二、非查询SQL语句介绍

常见的非查询SQL语句(SQL盲注的情景)有以下
1、insert插入数据

insert into table1(column1,column2) values (value1,value2)

其中,value1和value2是我们可以控制的变量。
2、delete删除数据

delete from table1 where column1=value1

其中,value1是我们可以控制的变量。
3、update更新数据

update table1 set column1=value1 where column2=value2

其中,value1是我们可以控制的变量。
4、order by数据排序

select * from table1 order by column1

其中,column1是我们可以控制的变量。

三、SQL盲注类型

根据SQL盲注获取信息的方式,我们又可以把SQL盲注细分为基于bool的盲注基于时间的盲注以及基于报错的盲注
基于bool的盲注,即虽然SQL语句没有信息回显,但是根据语句执行是否成功,有两种不同的反馈结果,我们就可以利用这两种反馈结果的不同,来获取数据库中的信息。
基于时间的盲注,即SQL语句可以正常执行,但是没有两种不同的反馈结果,这样我们可以使用sleep函数来使得SQL语句的执行在时间上出现不同的结果,以此来获取数据库的数据信息。
基于报错的盲注,指的是我们构造一个错误的SQL语句,并且该语句能够把数据库的信息显示到保存信息上,当站点对错误的SQL语句能够显示报错信息时,我们就可以借此来获取数据了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200

猜你喜欢

转载自blog.csdn.net/weixin_40228200/article/details/125823896