2019年年2月21日,国外安全性工作人员在搏客中公布了Wordpress 5.0.0版本号的远程控制实行系统漏洞。该系统漏洞实质上是由文件目录遍历系统漏洞和包括系统漏洞组成的当地文档造成的远程控制代码执行系统漏洞。当网络攻击得到对WordPress站名具备一些访问限制的账号时,能够运用该系统漏洞在最底层网络服务器上实行随意PHP编码,从而实现彻底远程控制移交网络服务器的总体目标。
WordPress部件介绍 WordPress是应用PHP語言开发设计的CMS系统软件。这是互联网上最火爆的CMS之四,都是个人博客系统。依据w3tech,大概40%的网址应用它,客户能够在适用PHP和MySQL数据库查询的网络服务器上创建自身的网址或应用自身的搏客。 WordPress宣布适用汉化版,而且有发烧友开发设计的第三方平台中文语言包,比如wopus中文语言包。
WordPress有着不计其数的软件和成千上万的主题风格模版款式。
系统漏洞叙述 WordPress的 5.0.0远程控制实行编码系统漏洞的背景图是应用WordPress文档上传的作用。当WordPress上传照片时,首张照片将被置放在uploads文件目录(wp-content/uploads)中,而WordPress也将在数据库查询中建立图象的內部手机应用程序,由于文件上传的源信息内容,如追踪图象。发送時间或照片的使用者。源信息内容将作为Post 元内容储存在数据库查询中。此信息内容储存在wp_postmeta表格中,统计数据储存为键值对。
给出如图:假如客户之后必须改动或应用具备相对ID的文档,WordPress将搜索配对的_wp_attached_file源内容并应用其值在wp-content/uploads文件目录中搜索该文档。 该系统漏洞是由Post Meta条目地相对路径遍历和应用WordPress主题风格库的当地文档包括造成的,最终遮盖特殊的Post Meta内容,该内容能够将初始文档的Post Meta关联到故意文档,可能会导致远程控制代码执行。系统漏洞。 系统漏洞剖析
1. 系统漏洞关键基本原理“Post Meta”的内容能够被遮盖 在WordPress 以前4.9.9 和WordPress以前的版本号 5.0.1,由WordPress上传文件转化成的贴子 能够改动全部Meta内容,并能够随意重设他们的值。升级映象时,将启用/wp-admin/include/post.php中的edit_post()涵数。
人们能够根据edit_post()涵数将随意Post引入数据库查询。 元内容。因为系统软件没有邮政快递 检验到对Meta条目地改动,因而网络攻击能够升级_wp_attached_file元内容并将其设定为一切值。这不容易重新命名一切文档,它总是变更WordPress在编写图象时要搜索的文档。这将造成稍候的相对路径遍历。
2. 根据改动“Post Meta”的来保持相对路径遍历 相对路径遍历产生在客户剪裁图象时启用的wp_crop_image()涵数中。
此涵数将图象的ID送到剪裁($ attachment_id)并从数据库查询中获得相对的Post。 Meta内容_wp_attached_file的值。因为以前的edit_post()存有缺点,$ src_file能够设定为一切值。因为缺点edit_post(),$ src_file能够设定为一切值。 在下一阶段中,WordPress务必保证图象实际上存有并载入它。 WordPress有二种载入给出图象的方式。第一类是在文件目录中的Post Meta内容中搜索_wp_attached_file出示的文件夹名称wp-content/uploads。 假如方式不成功,WordPress将试着从其自身的网络服务器免费下载映象做为储备。
因此,它将转化成1个免费下载URL,在其中包括wp-content/uploads文件目录的URL及其Post Meta内容中储存的_wp_attached_file的文件夹名称。 举1个实际的事例:假如Post Meta内容中储存的_wp_attached_file的值是evil.jpg,那么WordPress将最先试着查验文档wp-content/uploads/evil.jpg是不是存有。如果不是,它将试着从下列URL免费下载文档:https://targetserver.com/wp-content/uploads/evil.jpg。 试着免费下载图象而并不是在当地搜索图象的缘故是一些软件在浏览URL时动态性转化成图象。 WordPress总是将发送文件目录和URL联接到$ src_file的客户键入。如果WordPress取得成功载入合理图象wp_get_image_editor(),它将剪裁图象。 剪裁进行后,WordPress会将剪裁后的图象储存回文件系统(不管是不是免费下载)。
转化成的文件夹名称将是get_post_meta()网络攻击为$ src_file操纵的回到文档。对結果文件夹名称字符串的惟一改动是将文档的基础名字做为crop