您当前位置: 首页 » 未分类 » WordPress 4.2.2中修复的DOM XSS

WordPress 4.2.2中修复的DOM XSS

2015年5月8日 |

漏洞分析

此次发现在4.2.2中已修复了一个dom型xss
\wp-content\themes\twentyfifteen\genericons\example.html   334行

页面加载完毕自动调用该函数

jQuery(document).ready(function() {

 // pick random icon if no permalink, otherwise go to permalink

 if ( window.location.hash ) {
 permalink = "genericon-" + window.location.hash.split('#')[1];

 alert(permalink);
 attr = jQuery( '.' + permalink ).attr( 'alt' );

 cssclass = jQuery( '.' + permalink ).attr('class');

 displayGlyph( attr, cssclass );
 alert(cssclass);
 } else {
 pickRandomIcon();
 }
 

location.hash中的内容传入到permalink中,然后通过jQuery( ‘.’ + permalink )输出到页面中,而使用的jquery正好是旧版本,在此处形成xss

修复方案

删除该文件(在新版4.2.2中对该问题修复也是通过删除该文件)

漏洞验证

在该example.html文件后面加上验证代码即可,如下:
http://192.168.217.128/wp421/wp-content/themes/twentyfifteen/genericons/example.html#1<img/ src=1 onerror= alert(1)>

firefox测试截图

wp31
前面的domxss 是在wordpress 自带的示例html文件中,而在jetpack 插件中也存在该问题
在jetpack.3.5.2插件中,存在\jetpack\_inc\genericons\genericons\example.html

wp32

其中同样存在问题代码

jQuery(document).ready(function() {

// pick random icon if no permalink, otherwise go to permalink
if ( window.location.hash ) {
permalink = "genericon-" + window.location.hash.split('#')[1];
attr = jQuery( '.' + permalink ).attr( 'alt' );
cssclass = jQuery( '.' + permalink ).attr('class');
displayGlyph( attr, cssclass );
} else {
pickRandomIcon();
}

修复建议

删除该文件,或者使用最新版,官方已经在3.5.3版本中修复了该问题(删除了该文件)

wp33

危害

可以模拟浏览器操作,可以盗取用户甚至管理员COOKIE或者挂马,尤其是使用了单点登陆的网站中影响更为严重。

影响范围

使用wordpress小于4.2.2 或者安装jetpack插件小于等于3.5.2版本

相关链接

[1]http://digi.163.com/15/0507/09/AP0LEI9I00162OUT.html

分类:

未分类

| 标签:

评论关闭。