最近发现WordPress创建博客的方式存在逻辑漏洞,攻击者利用该漏洞可以访问只有管理员才可以访问的特征。这会导致WordPress内核产生存储型XSS和对象注入等漏洞。
影响
WordPress是博客软件的核心,允许用户创建和发布博客。随着时间的推移,产生了不同的post类型,比如页面和图像、视频等。插件可以注册新的post类型,比如产品和联系人表单。根据插件注册的post type的类型,可以提供不同的特征。比如通讯录form插件可能允许用户用文件上传域来常见一个联系人form。创建联系人form的用户可以定义允许上传的文件类型。恶意用户可以允许上传php文件,然后在站点上执行任意代码。但这并不是一个问题,因为插件可以限制对post类型的访问。下面要讲的权限提升就允许低权限用户绕过wordpress应用的安全检查,并创建任意类型的post,误用定制的post类型的特征。最终导致WordPress core产生存储型XSS和对象注入漏洞。根据安装的插件,还有更严重的漏洞可以利用。
技术背景
为注册新的post类型,插件必须要用新的post类型和一些meta信息来调用register_post_type()。
为什么定制的post类型是安全的?
每个post类型都有自己的编辑页面,比如 http://example.com/wordpress/wp-admin/?page=example_post_type_editor