sql注入流程 (手工) 学习
sql注入
一.信息收集
a. 数据库类型 -> 报错信息 ->特有语句
b.数据库版本
c.数据库用户
d.判断数据库权限
二.数据获取
a.获取库信息->获取当前库->获取所有库
b.获取表信息
c.获取列信息
d.获取数据
三.提权
a.根据数据库权限
1.执行系统命令->直接维权
2.读文件->读取数据库配置文件,尝试远程连接->读系统配置文件,收集信息
3.写文件->写webshell到网站目录
查询数据核心语法
功能名称 | 查询语句 |
---|---|
查库 | select schema_name from information_schema.schemata |
查表 | select table_name from information_schema.tables where table_schema=库名 |
查列 | select column_name from information_schema.columns where table_schema=表名 |
查数据 | select 列名 from 库名。表名 |
tips
1.所有类型的sql注入,都是基于查库,表,列语句
2.如果数据太多,导致无法返回查询结果;
查询的场景: 可利用 limit 限定返回的数量及位置,依次查询回显数据的场景:* concat* 连接多个数据成为一条返回结果
3.在一些场景,想要快速获取数据,需借助工具,如: BurpSuite
例如:
我们使用sqli-labs第一关来使用
sql注入,查询他的所有库
显示返回的数据过多。
可以使用limit进行限制
也可以使用group_concat进行连接成一条来显示