您当前位置: 首页 » 五月 2015
按日期归档: 五月 2015

WordPress 4.2.2修复4.2.1中的截断Xss 补丁分析

漏洞分析

在该次补丁的描述中,其中一条是修复了在4.2.1版本中的补丁bypass之后的xss问题,借此机会,下面分析一下在针对xss产生过程中所用的不同截断方法多次修复之后目前的具体验证流程。

补丁引入了两个开关变量
wp422/wp-includes/wp-db.php 2612行

 $truncate_by_byte_length = 'byte' === $value['length']['type'];
 $needs_validation = true;

readmore

2015年5月8日 | | 未分类

评论关闭

WordPress 4.2.2中修复的DOM XSS

漏洞分析

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

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

2015年5月8日 | | 未分类

评论关闭

WordPress <=4.2.1 存储型 xss

We noticed that the latest patch of WordPress (4.2.1) which fixed XSS vul can be bypassed. Details as follows.

The code in wp-includes\wp-db.php, function get_col_length added a check of submitted comment length vs limitation of data type.

protected function process_field_lengths( $data, $table ) {
foreach ( $data as $field =&gt; $value ) {
if ( '%d' === $value['format'] || '%f' === $value['format'] ) {
// We can skip this field if we know it isn't a string.
// This checks %d/%f versus ! %s because it's sprintf() could take more.
$value['length'] = false;
} else {
$value['length'] = $this-&gt;get_col_length( $table, $field );
if ( is_wp_error( $value['length'] ) ) {
return false;
}
}
<span style="color: #ff0000;">if ( false !== $value['length'] &amp;&amp; mb_strlen( $value['value'] ) &gt; $value['length'] ) {</span>
return false;
}
$data[ $field ] = $value;
}
return $data;
}

readmore

2015年5月8日 | | 未分类

评论关闭

WordPress <4.1.2 & <=4.2 存储型xss

漏洞概述

本次漏洞出现两个使用不同方式截断来实现的存储型xss,一种为特殊字符截断,一种为数据库字段长度截断,该漏洞导致攻击者可获取用户cookie以及模拟浏览器正常操作,并且当管理员访问到注入的payload时,结合wordpress后台功能甚至可以getshell。

 

漏洞分析

1.字符截断
通过官网介绍“The character set named utf8 uses a maximum of three bytes per character and contains only BMP characters. ”,mysql在使用utf8的时候,一个字符的大小的上限为3字节,而当出现四个字节的字符时,是需要用使用utf8mb4编码,不使用的话,会将不识别的四字节的字符连同后面的字符串一同舍弃。示例如下,使用特殊字符wp12
2015年5月8日 | | 未分类

评论关闭