Source Code Preparation
一般来说, 开源CMS所使用的Flash文件也都来自其他的开源项目, 所以直接获取WordPress所使用的SWF文件的actionscript源码并不是一件困难的事情. 以本次漏洞的目标文件wp-includes/js/mediaelement/flashmediaelement.swf
为例, 通过查看Github上与这个文件相关的最新的commit, 可以发现flashmediaelement.swf来自于一个开源项目MediaElement
, 版本号为2.18.1
. 恰好, 这个开源项目也托管在Github上, 那么直接下载它对应版本的Release. 同时, 在对MediaElement的源码目录初步研究后发现, 该项目也引用了另外一个开源项目flashls
的swc文件, 还贴心低注释了版本号为4.3.4
, 该swc文件对应版本的源码同样也可以在Github上找到Release. 这样的好处一是可以避免反编译过程中本地变量名混淆/代码块失踪的尴尬, 二是可以通过手动添加debug信息再本机编译, 更快地消化代码分支结构及数据流.