CTFHub - 整数型注入

2023-12-13 12:26:06

目录

1. SQL 注入分类

2. SQL 注入流程

3. 联合查询

3.1 必要条件

4. 注入流程

4.1 判断注入类型

4.2 判断列数

4.3 获取数据库---库名称

4.4 获取表---表名称

4.5 获取列---列名称

4.6 获取数据


????????欢迎各位师傅以kill -9 的威力对文章进行检查,Zeus会认真分析听取各位师傅的留言。

1. SQL 注入分类

? ? ? ? 根据不同的标准,SQL注入漏洞可以有不同的分类。

两大基本类型五大基本手法提交参数方式注入点的位置

数字型

字符型

联合查询

报错注入

布尔盲注

延时注入

堆叠查询

......

GET 注入

POST 注入

Cookie 注入

HTTP 头部注入

......

URL 注入

搜索框注入

留言板注入

登录框注入

......

2. SQL 注入流程

? ? ? ? 库→表→列→数据

3. 联合查询

????????适用数据库中的内容会回显到页面中来的情况。联合查询就是利用union select 语句,该语句会同时执行两条select 语句,实现跨库、跨表查询。

3.1 必要条件

  • 两条select 语句查询结果具有相同列数;
  • 对应的列数据类型相同(特殊情况下,条件被放松)。

4. 注入流程

4.1 判断注入类型

? ? ? ? ?如何判断注入类型和列数,具体可查看8.27日的文章,通道:cms靶场联合查询漏洞练习_netsecurity_Zeus的博客-CSDN博客

4.2 判断列数

order by X? ? ?

????????X :表示正整数。例:1、2、3......

? ? ? ? ????????当X=3 时,页面无回显,不正常

? ????????? ? ? 当X=2 时,页面有回显,正常

? ? ????????? ? 可推断出,此数据库存在两列。

4.3 获取数据库---库名称

????????union select 是联合查询语句,使用联合查询语句,需要将第一个select 语句执行错误。

????????两条select 语句,如果第一条语句执行正确,则不会回显第二条select 语句内容。

-1 union select 1,database()

4.4 获取表---表名称

????????获取sqli 数据库下的所有表名。

? ? ? ? group_concat :将多行数据按照指定的顺序连接成一个字符串。也就是获取所有的意思。

? ? ? ? information_schema :在关系型数据库中常见的系统数据库,每一个数据库都会自动生成。

????????information_schema:数据库包含了一系列的系统表,提供了关于数据库、表、列、索引、权限等元数据信息的访问接口,允许用户查询和获取数据库结构相关的信息。

-1 union select 1,group_concat(table_name) from information_schema.tables

4.5 获取列---列名称

? ? ? ? 获取flag 数据包中的列名称,这里发现回显出的内容还是flag,这可能会有点困惑,这其实就是flag中的flag。

? ? ? ? 不明白的话我们可以换一个表名称,去获取表中的列数,这里换了news表,可以发现此表中含有id 和data 。这就可以理清了。

-1 union select 1,group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='flag'

4.6 获取数据

????????成功获取flag !!!

????????恭喜你!!!

-1 union select 1,flag from flag

? ? ? ? 此数据库有两列,Zeus是在第二列敲的命令,大家也可以在第一列进行敲入命令。

文章来源:https://blog.csdn.net/Have_a_great_day/article/details/132729523
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。