依据CVE官方网系统漏洞通告,WordPress开发设计了1个新的组成rce系统漏洞。系统漏洞序号各自为CVE-2019年-8943和CVE-2019年-8942。免费下载系统漏洞版本号源码并剖析系统漏洞开启全过程。留意:务必毁坏系统漏洞再现。 net build,wordpress会在联接时自动升级编码包。
寻找系统漏洞文档post.php,wordpress有好几个post.php文档,这儿是分别人物角色的简略表明,wp-includes/post.php用以公布原文件,wp-admin/includes/post.php用以后台管理post管理权限的插口,wp-admin/post.php是后台管理贴子的恳求解决。实际的启用编码给出: Wp-admin/post.php:require_once(dirname(__ FILE__)。
'/adminmin.php'); Wp-admin/admin.php:require_once(ABSPATH。'wp-admin/includes/admin.php'); Wp-admin/includes/admin.php:require_once(ABSPATH。'wp-admin/includes/post.php'); Wp-admin/admin.php:require_once(dirname(dirname(__ FILE__))。'
/wp-load.php'); Wp-load.php:require_once(dirname(ABSPATH)。'/wp-config.php'); Wp-config.php:require_once(ABSPATH。'wp-settings.php'); Wp-settings.php:require(ABSPATH.WPINC。'/post.php'); 界定('WPINC','wp-includes'); 依据上边的启用全过程,漏洞利用全过程是将图象上传入媒体库,随后升级实际操作,启用wp-admin/post.php涵数,并依据转换到case: editpost,如图所示:
在其中edit_post是系统漏洞涵数,键入函数声明,给出如图:
$ post_data是1个post数组,没有过虑维护。这会造成后系统漏洞。比
较修补后的编码,给出如图:
我想要这里说一句话。因为也没有发觉WordPress会在我联接到Internet时自动升级,因而我找到另外相近的系统漏洞点,给出如图:
上边的编码将依据传送的元数组update_meta,依据编码中的$ key(数据库查询中的meta_id),$ value ['key'](数据库查询中的meta_key),$ value ['value'](in数据库查询)Meta_value),结构meta [1] [key]=_ wp_attached_file& meta [1] [value]=122,最终实行下列数据库查询句子UPDATE`wp_postmeta` SET`meta_key`='_ wp_attached_file',`meta_value`='122'WHERE`meta_id`=2,实行全过程如图所示:
依据meta_id升级wp_postmeta表的內容,最终实行do_action涵数,给出如图:
可是,因为第二和第三的限定,并不是取得成功实行。这都是1个系统漏洞再次出现的趣味点。再次追踪,如图所示:
寻找能用的点并键入wp_updae_post涵数,如编码如图,给出如图:
此涵数将实行某些实际操作来获得主要参数,获取数组中的自变量并将他们分派到产生系统漏洞的部位,如图所示:
发觉回到wp_insert_attachment涵数,追踪这一涵数,如图所示:
回到wp_insert_post涵数,追踪此涵数,再此涵数中寻找系统漏洞产生点,如图所示:
因而,据此系统漏洞,您能够传送meta_input [_wp_attached_file]=./evil.jpg?shell.php并实行SQL句子为UPDATE`wp_postmeta` SET`meta_value`='./_ evil.jpg?shell。 php'WHERE'post_id`=8 AND`meta_key`='_ wp_attached_file',检测标准是务必了解post_id的前提条件,但在正常情况下升级照片时候包括此参数。假如是检测,您能够观查数据库查询以填好有关內容。实际的SQL句子嵌套循环实行方式,如图所示:
根据传到主要参数,分派相对的表名和列名,最终实行do_action涵数,给出如图:
在此地进行wordpress文件目录遍历系统漏洞,随后应用包括系统漏洞的当地文档来实行rce。 Wordpress宣布应用图象库做为GD和Imagick,给出如图:
magick