信呼OA2.6.3文件上传漏洞

news/2025/1/20 3:44:56/文章来源:https://www.cnblogs.com/0kooo-yz/p/18336817

侵权声明

本文章中的所有内容(包括但不限于文字、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的材料,我们满怀敬意地承认该内容的版权归原作者所有。

如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系: [360619623@qq.com]。我们将在确认后的合理时间内采取适当措施,包括删除相关内容。

感谢您的理解与支持

0x00漏洞poc

上传:

index.php?d=main&m=flow&a=copymode&ajaxbool=true
POST:
id=1&name=a{};phpinfo ();class a

访问:

//地址一
webmain/flow/input/mode_a%7B%7D%3Bphpinfo%20%28%29%3Bclass%20aAction.php
//地址二
webmain/model/flow/2%7B%7D%3Bphpinfo%20%28%29%3Bclass%20aModel.php

0x01漏洞分析

通过poc找到文件上传点
webmain -> main -> flow -> flowAction.php -> copymodeAjax()

copymodeAjax函数上半部分

红框一
获取输入进来的name值并且全部转换成小写
红框二
判断输入进来的name在数据库中是否已经存在,如果已经存在本次上传结束,如果需要上传多次验证debug此时文件需要修改,我的建议是修改calss后面的字母
判断前id参数是否在数据库中存在,即是否存在id号的模板

image

copymodeAjax函数下半部分

红框一
获取本次复制模板的所以文件数量和模板位置
红框二
$from = str_replace('{bh}',$obha,$file);得到正真模板的位置,参数obha是存在模板名,参数file是模板位置的模板

image

$to = str_replace('{bh}',$bhnu,$file);获取存放复制结果的地方,和获取模板是同样的原来
红框三
从模板中获取文件内容
这行代码的目的是在 $fstr 中找出所有的'flow_'.$obha.'ClassModel'模板名,并用 'flow_'.$bhnu.'ClassModel' 替换掉它们,其中的bhnu的值等于name

image

跟进createtxt()函数
第一句就是创建文件。
第二个红框位置是测试文件是否可以创建并打开,如果失败无法写入。

image

两个if判断都是同样的效果,这就相对于将一句话或其他测试语句写入文件达到文件上传的目的。
其他的模板就是完全复制没有修改,这就是为什么有两个访问路径

poc组成(瞎猜版)

name=a{};phpinfo ();class a

我分成三部分
第一部分a{};
认为是为了和前面的class进行闭合,为了使中间的语句起作用和sql注入闭合'分号差不多。
第二部分phpinfo();
危险函数
第三部分class a
试了一下如果将a删除此时calss关键字就不会起作用,此时类名会报错无法正常访问该文件,因为访问会报错。
可以看出该模块是担任前面的那个class的职责

以上内容纯属瞎猜

0x02漏洞复现

1、发送文件上传包

image

2、访问

image

我试了一下getshell没有办法创建文件,可能是修复了

0x03总结

我感觉上传方式很新奇,可能是见识少了
危险函数createtxt()

0x04参考

信呼OA普通用户权限getshell方法 - FreeBuf网络安全行业门户


免责声明

本博客所提供的技术知识和信息仅旨在教育和分享网络安全最佳实践,促进网络安全意识的提升。作者严禁将这些技术和信息用于任何非法或不道德的目的。

使用本博客内容而导致的任何违法行为或后果,作者不承担任何法律责任。所有读者在使用本博客的信息时,应自行承担风险,并确保遵守当地法律法规。

我们鼓励所有读者合法地使用所提供的信息和技术,致力于维护安全和负责任的网络环境。

感谢您的理解与支持。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/776171.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一次动态接口替换经历

接口改造 背景 现有旧订单接口 orderDetail,该接口会返回全量节点,部分节点不会使用因此造成了冗余,给数据库造成了较大压力,因此改造新接口 basicOrderDetail(xxx) 支持传入需要赋值的节点,方便赋值。 有如下改造方案:现有多个其他部分接口调用当前 orderDetail 接口获取…

智算引领,数耀鹭岛!天翼云与厦门电信共筑智算时代新底座!

在数字化浪潮的推动下,算力已成为推动社会进步的重要力量。近日,由厦门市数据管理局指导,天翼云科技有限公司、中国电信有限公司厦门分公司(以下简称“厦门电信”)主办的“智算引领 数耀鹭岛”——厦门智算中心(电信中心)发布会暨算力补贴政策宣贯会在福建厦门成功举办。…

行业标准引领者!天翼云助推智算领域规范化发展!

7月24日,2024可信云大会召开期间,智算云服务论坛上,天翼云荣获中国信通院颁发的“智算工程平台能力要求标准参编证书”,代表了业界对天翼云在推动行业标准制定中所作贡献及成果的重要肯定,以及对天翼云技术创新水平的高度认可。会上,天翼云科技有限公司智算产品线资深技术…

07HTML+CSS

标准流 标准流也叫文档流,指的是标签在页面中默认的排布规则,例如:块元素独占一行,行内元素可以一行显示多个。 浮动(了解) 作用:让块元素水平排列。 属性名:float 属性值 • left:左对齐 • right:右对齐 特点: • 浮动后的盒子顶对齐 • 浮动后的盒子具备行内块特…

推荐一款好用的刷题工具

为了帮助正在准备求职季的开发者提升备战效率,阿里云特别推出“通义灵码陪你备战求职季”活动,精心挑选百道历史校招技术面试/笔试题,借助通义灵码智能问答、代码智能生成、代码优化等核心功能,帮助开发者更加准确地了解程序员职业所需的核心技能,加强对问题解决思维和解题…

win10 in arm

记得流水账了,非技术控跳过即可。 10年前,早在win10刚出的那些天,就浏览到有支持arm架构的信息,只是未见缘来打怪,磨蹭到微软快要取消支持的了,方哦,哦,哦... 老板的华为平板cpu是枭龙850+8g内存,64位家庭版。平板上旧系统中了comup.dll的毒,一阵删杀后把系统给搞崩了…

Getty 携手英伟达升级商业文生图 AI 模型;苹果新专利探索「心跳」解锁 iPhone 丨 RTE 开发者日报

开发者朋友们大家好:这里是 「RTE 开发者日报」 ,每天和大家一起看新闻、聊八卦。我们的社区编辑团队会整理分享 RTE(Real-Time Engagement) 领域内「有话题的 新闻 」、「有态度的 观点 」、「有意思的 数据 」、「有思考的 文章 」、「有看点的 会议 」,但内容仅代表编辑…

《DNK210使用指南 -CanMV版 V1.0》第十六章 machine模块实验

第十六章 machine模块实验 1)实验平台:正点原子DNK210开发板 2)章节摘自【正点原子】DNK210使用指南 - CanMV版 V1.0 3)购买链接:https://detail.tmall.com/item.htm?&id=782801398750 4)全套实验源码+手册+视频下载地址:http://www.openedv.com/docs/boards/k210/A…

使用Scanner类处理用户输入时,当捕获到异常后,需要适当的清理输入流,以确保程序可以正确继续执行

问题描述 代码示例 public class Example {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (true){System.out.print("正常输入一个数字: ");int anInt = scanner.nextInt();//正常输入try {//错误输入的字符System.out.p…

在处理用户输入时,当捕获到异常后,需要适当的清理输入流,以确保程序可以正确继续执行

问题描述 代码示例 public class Example {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while (true){System.out.print("正常输入一个数字: ");int anInt = scanner.nextInt();//正常输入try {//错误输入的字符System.out.p…

Ubuntu20.04.2安装Cockpit通过web管理系统

Cockpit是一个简单易用的Web界面,让用户可以通过浏览器管理Linux服务器,支持系统监控、存储管理、网络配置和日志查看等,适合初学者和希望简化管理流程的系统管理员。目录什么是Cockpit安装启用&设为自动启动Wiki 什么是Cockpit Cockpit是一个简单易用的Web界面,让用户…

Flutter 自定义画笔案例

首先让我们来看下这张图当UI做的设计图中有这么一个元素,我想大多数人第一反应就是叫UI切图,然后直接使用Image加载,我一开始也是这么做的,毕竟省时省力省心。 但是由于后面需要针对不同的状态设置不同的颜色,我不想写过多判断语句来切换图标(我目前的做法是实现一个枚举…