找回密码
立即注册
搜索
热搜: Java Python Linux Go
发回帖 发新帖

1821

积分

0

好友

255

主题
发表于 2025-12-30 02:45:25 | 查看: 26| 回复: 0

处置:从告警到溯源

七一重保期间,某合作公司向我司紧急求救,其APT系统出现攻击告警。现场人员发现有IP正针对其系统进行Ueditor编辑器任意文件上传漏洞攻击,并且攻击者已成功上传了木马文件。应急响应工作随即展开。

  1. 初步处置:在电话中与客户沟通后,建议其暂时切断服务器外部通信以控制风险。客户采纳建议,直接关闭了服务器。

    Windows服务器管理界面截图
    图:被攻击服务器的管理界面。

  2. 现场分析:抵达现场后,首先查看APT系统,确认存在大量关于Ueditor文件上传的攻击告警。

    网络安全攻击日志显示Ueditor漏洞攻击
    图:APT系统捕获到的Ueditor任意文件上传漏洞攻击日志。

    日志显示,攻击者已利用此漏洞成功上传了木马文件。这不禁让人疑惑,部署的WAF在关键时刻为何未能生效?

    HTTP请求与响应显示Webshell上传成功
    图:攻击成功的HTTP请求与响应,文件已上传至服务器。

  3. 文件排查:重启服务器并关闭外网访问后,根据攻击回显的路径,定位到被上传的文件目录。

    上传文件的路径信息
    图:根据攻击回显找到服务器上的文件路径。

    经查,上传的文件是一个常见的冰蝎(Behinder)ASPX webshell,这让人稍微松了口气。

    冰蝎Webshell的C#代码片段
    图:攻击者上传的冰蝎木马文件代码片段。

  4. 清理与加固:将所有可疑文件备份至本地后,立即从服务器中删除。检查过程中还发现了一些涉及赌博等内容的黑页文件。为彻底排查风险,立即对网站目录进行了后门扫描。

    网站后门扫描工具界面
    图:使用工具对网站进行后门文件扫描。

  5. 威胁情报溯源:对攻击源IP和用于承载木马的域名进行威胁情报分析,结果显示两者均被标记为恶意。

    威胁情报平台显示IP与域名为恶意
    图:微步情报显示攻击者IP和域名均为恶意。

    进一步分析发现,相关IP和域名均位于香港,且未进行备案。

    SEO查询显示域名无备案信息
    图:SEO综合查询显示攻击者域名无备案,IP位于香港。

  6. 样本分析:尝试访问攻击者用于上传的木马源地址,并将文件下载到本地进行分析。

    该文件实质是一个GIF图片与冰蝎aspx木马拼接而成的图片马。

    图片马的代码显示
    图:下载的“图片马”文件,实为GIF头部拼接了ASPX webshell代码。

    将该文件提交至云沙箱检测,也被确认为恶意软件。

    云沙箱多引擎检测报告显示文件为恶意
    图:微步云沙箱检测报告,多款引擎检出该文件为后门。

成因:深入代码分析漏洞原理

Ueditor的官方网站虽已停止访问,但其源码仍可在GitHub上获取。

  1. 入口分析:查看 /net/controller.ashx 文件,第14行接收了一个名为 action 的参数。

    controller.ashx文件代码,接收action参数
    图:Ueditor控制器入口文件,接收action参数。

  2. 路由判断action 参数通过 switch case 进行判断。当 action 等于 catchimage(远程图片抓取)时,会调用 CrawlerHandler

    switch case代码,action为catchimage时的处理
    图:根据action参数值,路由到不同的处理器。

    进入 CrawlerHandler 查看,当 source 参数为空时,会返回“参数错误:没有指定抓取源”。这正是我们探测漏洞是否存在时利用的特征。

    CrawlerHandler.cs文件目录结构
    图:Ueditor net版本后端处理器的文件结构。

    访问漏洞路径返回“参数错误”
    图:访问漏洞路径,返回特定错误信息,证明接口存在。

  3. 核心逻辑:当 source 参数不为空时,程序会为每个 source 创建一个 Crawler 对象并执行抓取。

    CrawlerHandler中遍历source并创建Crawler对象
    图:CrawlerHandler中处理多个图片源的核心代码。

  4. 漏洞触发点:在 Crawler 类的 Fetch 方法中,程序会向 source 指定的URL发起请求。

    Crawler类创建HTTP请求获取响应
    图:Crawler类中发起网络请求的代码片段。

    随后,代码会检查响应的 ContentType 是否包含“image”字符串,以此判断是否为图片。

    检查响应ContentType是否包含image关键字
    图:漏洞关键点之一,仅通过ContentType判断文件类型。

  5. 任意文件上传:如果 ContentType 检查通过,文件就会被保存到服务器上。因此,攻击者只要控制一个远程服务器,使其返回的HTTP响应头中 Content-Type 包含“image”(例如 image/jpeg),就可以诱使Ueditor将任意文件(如aspx木马)当作图片抓取并保存到本地,从而造成任意文件上传漏洞

    代码将远程文件保存到服务器本地路径
    图:通过路径格式化,将远程文件保存到服务器指定目录。

Tips:
常见的利用方式为何是上传 xxx.gif?.aspx?这是因为服务器端获取文件后缀的逻辑是通过截取URL中最后一个点(.)来实现的。对于URL http://evil.com/shell.gif?.aspxGetFileName() 方法会将其解析为 shell.gif,但最终保存到服务器的文件扩展名却是 .aspx,从而绕过简单的文件类型检查。

复现:验证漏洞影响

  1. 漏洞探测:访问 Ueditor/net/controller.ashx?action=catchimage,返回“参数错误:没有指定抓取源”,初步证明该接口存在且存在风险。

  2. 上传HTML测试:构造请求,让Ueditor从远程抓取一个HTML页面,上传成功。

    成功上传HTML文件的HTTP请求与响应
    图:利用漏洞成功上传HTML文件到服务器。

  3. 上传图片马测试:构造请求,抓取一个 Content-Typeimage/jpeg 但实际内容为webshell的“图片马”,同样上传成功。

    成功上传图片马的HTTP请求与响应
    图:成功上传图片格式的Webshell文件。

修复:临时处置与彻底修补

在系统开发商到场前,采取临时修复措施控制风险:

  1. 访问控制:在防火墙上配置策略,禁止外网IP访问存在漏洞的 admin 目录以及文件上传后的存储目录 f_load

    防火墙策略配置界面
    图:通过配置WAF/防火墙策略限制目录访问。

    配置后外网访问被禁止
    图:应用访问控制策略后,外网访问相关目录返回403禁止访问。

  2. 请求重定向:通过规则,将访问漏洞路径 action=catchimage 的请求重定向到登录退出页面。

    请求被重定向到Logout页面
    图:配置规则将攻击请求302重定向到安全页面。

  3. 代码修复:开发人员到达后,最根本的修复是修改后端代码,关闭或严格校验 catchimage 功能。例如,可彻底移除该功能,或在保存文件前进行更严格的文件头校验,而非仅依赖 ContentType。临时方案也可关闭上传成功的路径回显。

    攻击请求仍成功但无回显
    图:修复回显后,攻击虽可能成功,但攻击者无法获取文件路径。

总结:应急响应标准化流程

通过此次实战,可以总结出处理类似Web漏洞应急响应事件的一般步骤,这对于从事安全攻防与应急响应工作的工程师具有参考价值:

  1. 初步控制:详细了解事件情况,与客户协商对受影响服务器进行断网或关机,防止危害扩大。如有终端安全管理系统,立即发起全盘病毒查杀。
  2. 证据保全与清理:备份木马、可疑文件至本地分析,然后彻底清除服务器上的相关文件。
  3. 样本与影响分析:分析木马类型、功能及可能造成的危害(如数据泄露、内网渗透等),评估事件等级。
  4. 漏洞分析与复现:分析攻击手法,定位漏洞成因,并在测试环境中复现漏洞,明确修复点。
  5. 临时与永久修复:优先利用WAF、防火墙等设备部署虚拟补丁或访问控制策略进行紧急防护。随后协调研发人员对源码进行彻底修复,并验证修复效果。

通过以上系统化的流程,能够高效、有序地应对突发的网络安全攻击事件,将损失降到最低。希望这次针对Ueditor漏洞的应急响应实录,能为你的渗透测试与安全防御工作带来启发。更多技术交流与深度内容,欢迎关注云栈社区




上一篇:使用browser-use与多模态模型构建高效Browser Agent的实践指南
下一篇:AI辅助编程:Vibe Coding与Spec Coding的最佳实践与场景分析
您需要登录后才可以回帖 登录 | 立即注册

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-1-10 18:36 , Processed in 0.263171 second(s), 39 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2025 云栈社区.

快速回复 返回顶部 返回列表