SQL注入原理剖析
2022-11-21 18:56:16351浏览
​ SQL注入是SQL里面的一个非常重要的技术。学好和用好SQL注入对后续的渗透有很大的帮助。我们现在就来分析SQL注入的流程和注入的相关事项。

一、SQL注入的流程

​ 要用好SQL注入,那么就需要SQL注入的流程有一个整体的把握。

SQL注入的流程有:

1、首先需要判断网站是否有注入

2、分析是什么样的SQL注入

3、判断语句能否被修改

4、是否能够成功带入执行

5、获取我们想要的数据

需要的数据就是:

获取数据库 -> 获取表 -> 获取字段 -> 获取字段内容

1、判断是否有注入

注入点:http://127.0.0.1/sqli-labs-master/Less-1/?id=1

常见的注入方式:

    第一种:and
and 1=1 返回正常
and 1=2 返回错误

第二种:.0 、 .1
?id=3.0 返回正常
?id=3.1 返回错误

第三种:' (单引号)
?id=3' 加单引号报错

第四种:-1
?id=3-1 会返回 ?id=2 这个页面

and 1=1 返回正常

and 1=2 返回错误

其他几种注入方式我就不再一一写出来了。同学们可以都去尝试一下。

只要判断出错,那就说明这个地方大概率存在SQL注入。我们就可以继续去获取数据。

2、获取数据

在 MySQL 中,有一个很重要的数据库:information_schema,而它有三个很重要的表

第一个表个是:SCHEMATA :information_schema , 而这个数据库中的 SCHEMATA 表中的 SCHEMA_NAME 列中的值有我们的所有的数据库名。

information_schema:第二个表是:TABLES TABLES 这个表里的包含了数据库中所有的字段

information_schema:第三个表是:COLUMNS COUMNS 这个表里的包含了数据库中所有的表

3、查询数据

(1)查询字段数量判断列数看看大小会不会报错

order by :判断列数

%23:是 #(注释符)的原型,因为%23是#号的URL编码,注释的意思。所以我们先把注释符#转化为%23,作用是让他语句闭合起来。

(2)查询当前网站使用的数据库

version():查看版本

database():查看当前网站使用的数据库

其他的查询语句可以参考我们的视频,这里我就没必要一一列出来讲解了。

友情链接: