WordPress官方在4月21日发布了新的版本4.1.2,其中提到修复了一个严重的存储型xss漏洞。不久之后便有人给出了漏洞的细节。
这次的xss仍然出现在wordpress的留言处,不过问题是由mysql的一个特性引起的。在mysql的utf8字符集中,,一个字符由1~3个字节组成,对于大于3个字节的字符,mysql使用了utf8mb4的形式来存储。如果我们将一个utf8mb4字符插入到utf8编码的列中,那么在mysql的非strict mode下,他的做法是将后面的内容截断。
利用这一特点,作者发现了wordpress的这个xss漏洞。
WordPress默认是utf8编码并且没有开启strict mode,如果我们加入一条这样的留言:
<abbrtitle=’Web
可是却依旧为对方擦去嘴角的油渍。