2024.2.1
GETSHELL
利用SQL注入获取MYSQL数据库权限的要求:
文件读写基本要求:
- 是root用户最高权限
- 知道网站的绝对路径
文件读写注入的原理:
利用文件的读写权限进行注入,它可以写入一句话木马,也可以读取系统文件的敏感信息
文件读写注入的条件:
高版本的MYSQL添加了一个新的特性secure_file_priv,该选项限制了mysql导出文件的权限
secure_file_priv选项 | |
---|---|
secure_file_priv= | 代表对文件读写没有限制 |
secure_file_priv=NULL | 代表不能进行文件读写 |
secure_file_priv=d:/mysql/data | 代表只能对该路径下文件进行读写 |
show global variables like'%secure% | 查看mysql全局变量的配置 |
以下例子均为 sqli-labs-master 靶场环境
手工注入
文件的写入
基本格式 :
'<文件内容>' into outfile/dumpfile '<待写入文件的绝对路径>'
区别 | outfile | dumpfile |
文件类型 | 更适用于文本文件 | 更适用于二进制文件 |
存储方式 | 可以写多行 | 只能写一行 |
脏数据 | 有 | 无 |
可选后缀 | 作用 | 示例 | 结果 |
无后缀 | 无 | | |
lines terminated by '<文本>' | 将文本写在最后 | | |
lines starting by '<文本>' | 将文本写在最前 | | |
fields/columns terminated by '<文本>' | 设置字段分割符 | |
文件的读取
load_file('<文件的绝对路径>')
?id=-1' union select 1,2,load_file('D:\\1.php') -- a
sqlmap注入
--os-shell
python sqlmap.py -u http://127.0.0.1/sqli-labs-master/Less-1/?id=1 --os-shell
完成后会在指定位置生成木马文件