SQL 注入——文件读写

本文探讨了如何通过SQL注入利用MySQL数据库的文件读写权限,包括查看当前用户权限、检查file_priv列、安全选项如secure_file_priv的设置,以及load_file()和intooutfile函数在读写文件中的应用。提醒了安全风险并强调了配置管理的重要性。
摘要由CSDN通过智能技术生成

SQL 注入读写文件

权限

当前(连接)数据库的用户具有文件读写权限。数据库的权限粒度,某个库中某个表某个用户是否有增删改查权限。

查看当前用户

MySQL 数据库用户,例如root@localhost,由两部分组成:

  • 用户名
  • 地址
select user()

image-20231107155633299

查看文件权限

mysql.user 表中查看 file_priv,使用限定条件 userhost 筛选

image-20231107161648974

显示 Y 说明有文件权限

安全选项

MySQL 数据库有关于文件读写的安全选项secure_file_priv。 secure_file_priv 参数限制了mysqld(MySQL DBMS) 的导入导出操作,这个选项是不能利用SQL 语句修改,必须修改my.ini 配置文件,并重启 mysql 数据库。

SHOW VARIABLES LIKE 'secure_file_priv';
参数含义
secure_file_priv=NULL限制mysqld 不允许导入导出操作。
secure_file_priv=‘c:/a/’会限制mysqld 的导入导出操作在某个固定目录下, 并且子目录有效。
secure_file_priv=不对mysqld 的导入导出操作做限制。

读取文件

使用load_file() 函数。

select load_file("c:\\windows\\system32\\drivers\\etc\\hosts")

 select load_file("c:/windows/system32/drivers/etc/hosts")


select load_file("/etc/passwd")

image-20231107162114298

写入文件

使用into outfile 语句。

select column1,column2 into outfile "c:/phpstudy_2016/www/1.php" 

image-20231107162509725

进入目标机器 www 目录下查看

image-20231107163201159

蚁剑连接

image-20231107163230850

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

gjl_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值