[代码审计]某国产OA漏洞挖掘

开源系统漏洞挖掘实战:从代码审计到Getshell的攻防解析 在网络安全领域,漏洞挖掘是识别和修复系统安全缺陷的核心技术。其原理在于通过分析软件代码或运行时的行为,寻找可能被攻击者利用的设计缺陷或编码错误。这项技术的价值在于能够主动发现潜在风险,提升系统整体安全性,广泛应用于企业安全防护、渗透测试和红蓝对抗等场景。本文聚焦于开源系统的漏洞挖掘实战,深入解析命令注入、文件包含等高危漏洞模式,并结合静态代码审计与动态渗透测试方法,系统介绍从信息收集、环境搭建到漏洞验证与披露的完整工程化流程,为安全研究人员提供一套可落地的漏洞狩猎方法论。 阅读详情

如果觉得该文章有帮助的,麻烦师傅们可以搜索下微信公众号:良月安全。点个关注,感谢师傅们的支持。
这两天比较闲,没有什么项目。于是看看了之前获取到的一个系统的源码,结果一看是.net。我哪会什么.net代码审计啊,本着来都来了的原则,还是打算看看。

工具准备

ILSpy:[icsharpcode/ILSpy: .NET Decompiler with support for PDB generation, ReadyToRun, Metadata (&more) - cross-platform! (github.com)](https://github.com/icsharpcode/ILSpy)

ILSpy主要用于反编译dll动态链接库。默认安装就好,安装完成后如果没有安装.net框架,工具会给出连接下载默认安装即可。安装完成后打开如下。
在这里插入图片描述

正式审计

首先看下目录。
在这里插入图片描述
是webform架构,那他的路由就是在任意目录下的asxm、aspx、ashx等文件中调用bin目录下的动态链接库。先看下这个系统的一个历史漏洞。

历史漏洞追踪

在这里插入图片描述

看的出来时调用了SalaryAccounting类,我们通过ILSpy反编译bin目录下的KPMIIS.Web.dll,然后进去找到对应的类。
在这里插入图片描述
从pyload中可以看出是调用Calculate方法和staffId参数。直接源码贴下

[WebMethod]
public string Calculate(string SalaryCategory, string StaffBirthDay, string staffId, string Department, string SubOrg, string taxMonthly)
			}
		string message = AccountProcess(SalaryCategory, StaffBirthDay, staffId.TrimEnd(new char[1] { ',' }), strOrganizationCode, SubOrg, taxMonthly);
		sbMessage.Append(message);
	}
	catch (Exception ex)
		protected string AccountProcess(string SalaryCategory, string StaffBirthDay, string staffId, string Department, string SubOrg, string taxMonthly)
{
	try
	{
		StringBuilder sqlStr = new StringBuilder();
		sqlStr.Append("SELECT HR_SalaryFilesHistory.SFH_STAFF_ID FROM dbo.HR_SalaryFilesHistory  WHERE HR_SalaryFilesHistory.SFH_SA_ID != 0 ");
		if (!string.IsNullOrEmpty(SalaryCategory))
		{
			sqlStr.Append($" AND SCO_CATEGORY_ID={SalaryCategory} ");
		}
		if (!string.IsNullOrEmpty(StaffBirthDay))
		{
			sqlStr.Append(string.Format(" AND YEAR(SFH_SALARY_YEARS)=YEAR('{0}') AND MONTH(SFH_SALARY_YEARS)=MONTH('{0}') ", StaffBirthDay + "-01"));
		}
		if (!string.IsNullOrEmpty(staffId))
		{
			sqlStr.Append($" AND SFH_STAFF_ID IN (SELECT tempString FROM F_SplitNew('{staffId}',','))");
		}
		if (!string.IsNullOrEmpty(Department))
		{
			sqlStr.Append($" AND SFH_STAFF_DEPARTMENT_ID IN (SELECT tempString FROM F_SplitNew('{Department}',',')) ");
		}
		if (!string.IsNullOrEmpty(SubOrg))
		{
			sqlStr.Append($" AND SUB_ORG_ID = {SubOrg} ");
		}
		DataSet ds = Gateway.Default.FromCustomSql(sqlStr.ToString()).ToDataSet();
		StringBuilder staffIdFlow = new StringBuilder();
		if (ds.Tables.Count > 0)
		{
			for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
			{
				if (i == ds.Tables[0].Rows.Count - 1)
				{
					staffIdFlow.Append(ds.Tables[0].Rows[i][0]);
				}
				else
				{
					staffIdFlow.Append(string.Concat(ds.Tables[0].Rows[i][0], ","));
				}
			}
		}
		_bllSalaryFilesHistory.Delete(Convert.ToDateTime(StaffBirthDay), Convert.ToInt32(SalaryCategory), staffId, Department, SubOrg);
		ReshuffledAccounting(SalaryCategory, StaffBirthDay, staffId, Department, SubOrg, staffIdFlow.ToString());
		_bllSalaryFilesHistory.Insert(Convert.ToDateTime(StaffBirthDay), Convert.ToInt32(SalaryCategory), 1, staffId, Department, SubOrg, taxMonthly);
		DataTable dtHistory = _bllHrVSalaryFilesHistoryList.GetDataTable(HR_V_SalaryFilesHistoryList._.SCO_CATEGORY_ID == SalaryCategory && HR_V_SalaryFilesHistoryList._.SFH_SALARY_YEAR == DateTime.Parse(StaffBirthDay).Year && HR_V_SalaryFilesHistoryList._.SFH_SALARY_MONTH == DateTime.Parse(StaffBirthDay).Month);
		StringBuilder sbWhere = new StringBuilder();
		if (!string.IsNullOrEmpty(SalaryCategory))
		{
			sbWhere.Append($" and T1.SCO_CATEGORY_ID = {SalaryCategory}");
		}
		if (!string.IsNullOrEmpty(staffId))
		{
			sbWhere.Append($" and SFH_STAFF_ID in ({staffId})");
		}
		if (!string.IsNullOrEmpty(StaffBirthDay))
		{
			sbWhere.Append(string.Format(" and T1.SFH_SALARY_YEARS = '{0}'", new DateTime(Convert.ToDateTime(StaffBirthDay).Year, Convert.ToDateTime(StaffBirthDay).Month, 1).ToString("yyyy-MM-dd")));
		}
		DataTable dtSalaryHistoryTotalTable = Gateway.Default.FromStoredProcedure("HR_P_SalaryHistoryTotalTable").AddInputParameter("@where", DbType.String, sbWhere.ToString()).ToDataSet()
			.Tables[0];
		WhereClip wcMonthly = new WhereClip() && new WhereClip(" 1 = 1 ", null, null, null);
		string wcMonthDate = "";
		if (!string.IsNullOrEmpty(StaffBirthDay))
		{
			wcMonthly = wcMonthly && new WhereClip($" ham.MONTHLY_DATE = '{StaffBirthDay}' ", null, null, null);
			wcMonthDate = StaffBirthDay;
		}
		if (!string.IsNullOrEmpty(staffId))
		{
			wcMonthly = wcMonthly && new WhereClip($" A.STAFF_ID in ({staffId}) ", null, null, null);
		}
		if (!string.IsNullOrEmpty(Department))
		{
			string strOrganizationCode = "";
			strOrganizationCode = new BLLCOMMON_Organization().GetIDsOrganizations(Department);
			if (strOrganizationCode != "")
			{
				wcMonthly = wcMonthly && new WhereClip(string.Format(" A.ORGANIZATION_ID in ({0}) ", string.IsNullOrEmpty(strOrganizationCode) ? "-1" : strOrganizationCode), null, null, null);
			}
		}
		if (!string.IsNullOrEmpty(SubOrg))
		{
			wcMonthly = wcMonthly && new WhereClip(string.Format(" E.SUB_ORG_ID in ({0}) ", string.IsNullOrEmpty(SubOrg) ? "-1" : SubOrg), null, null, null);
		}
		DataTable dtMonthly = _bllHrAttendanceMonthly.GetTable(wcMonthly, new WhereClip($" FLOW_STATE = {3} ", null, null, null), wcMonthDate);

可以看到是通过字符拼接的方式直接拼接参数,进入FromCustomSql执行sql语句,从而导致sql注入。这样的话同理的其他一些参数也可以sql。

sql注入挖掘

那我们知道了这里的sql的执行流程,我们直接全局搜索FromCustomSql,查看是否其他sql语句参数可控且无过滤。因为ILSpy的全局搜索不是很好用,所以这边保存代码导出用vscode打开查看搜索。可以看到有很多。
在这里插入图片描述
这里随便找一两个接口测试一下就结束了。
在这里插入图片描述

文件上传挖掘

依旧是先搜索关键字。
在这里插入图片描述
首先就可以看到存在fckeditor编辑器,编辑器上传这边就不多说了,继续查看其他接口。
后面有陆续找到一些图片、附件上传的接口,发现都存在过滤。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
最后发现有一处上传未过滤,具体信息就不透露了。因为本人能力不足实在太菜,只会照葫芦画瓢,大概只能到这种程度了。

2024年SRC漏洞挖掘实战指南:从信息收集到逻辑漏洞的精细化狩猎 在网络安全领域,漏洞挖掘是评估系统安全性的核心实践,其本质在于通过模拟攻击者行为,发现软件或系统中存在的设计缺陷与安全弱点。其技术原理通常围绕输入验证、权限控制、业务逻辑等环节展开,通过构造异常数据或非预期操作流程,探测系统的异常响应。掌握漏洞挖掘技术对于提升系统防御能力、构建主动安全体系具有重要价值,广泛应用于渗透测试、红蓝对抗、安全众测等场景。本文聚焦于SRC实战,深入剖析了信息收集、工具链配置等基础环节,并重点探讨了逻辑漏洞与SQL注入等经典攻击面的现代挖掘技巧,旨在为安全研究人员提供一套可复现的精细 阅读详情

相关推荐

网络安全新手入门:从零开始的漏洞挖掘实战指南与工具详解

漏洞挖掘是网络安全领域的核心技能之一,其本质是通过系统性的方法发现软件或系统中的安全缺陷。其原理在于分析应用程序的输入输出、业务逻辑和交互流程,寻找可能被恶意利用的薄弱环节。掌握这项技术对于构建安全防线、提升系统健壮性具有重要价值,广泛应用于渗透测试、安全审计和应急响应等场景。在实践层面,信息收集与SQL注入是基础且关键的切入点。通过系统化的信息收集可以全面测绘攻击面,而SQL注入作为经典的Web漏洞类型,其手工检测与利用流程是理解漏洞原理的绝佳范例。本文正是围绕如何构建规范的漏洞挖掘工作流,详细介绍了从目

congxian2511的博客 368

实战|记一次java协同办公OA系统源码审计

实战|记一次java协同办公OA系统源码审计

weixin_46239998的博客 2862

从CNVD漏洞公告到通用挖掘:零基础入门网络安全思维训练

在网络安全领域,漏洞挖掘是识别和利用软件缺陷的核心技术。其基本原理在于通过分析已知漏洞的模式、成因和修复方式,推导出潜在的攻击面与通用缺陷。掌握这一方法不仅有助于理解漏洞产生的深层逻辑,更能提升主动防御和代码审计能力,具有极高的工程实践价值。常见的应用场景包括对Web应用、物联网设备及企业系统的安全性评估。本文以CNVD(国家信息安全漏洞共享平台)公告为切入点,深入解析如何从公开的漏洞信息中提炼出SQL注入、路径遍历等通用漏洞模式,并构建可复用的漏洞挖掘检查清单,帮助初学者快速建立从信息分析到实战推理的完整

weixin_34343000的博客 349

万字长文教你学会代码审计!务必收藏!

代码审计是通过识别潜在风险的专业实践。生产环境修复漏洞的成本是设计阶段的30倍以上。真正的安全防御必须左移。

ewii12567的博客 843

SRC漏洞挖掘实战指南:从零到一掌握白帽子入门路径

漏洞挖掘是网络安全领域的核心技能之一,其本质在于识别和利用软件或系统中的安全缺陷。从技术原理上看,漏洞通常源于开发过程中的逻辑疏忽、配置错误或输入验证缺失。掌握这项技术对于构建安全防线、提升系统抗攻击能力具有重要价值,广泛应用于企业安全测试、渗透评估等场景。本文聚焦SRC(安全应急响应中心)漏洞挖掘,为初学者提供一套清晰的实战路径。通过结合Burp Suite、SQL注入等热词,详细解析从信息收集、漏洞探测到报告撰写的完整流程,并强调合法合规的测试边界,帮助读者在实战中快速建立漏洞挖掘能力,实现从理论到实践

dgqvhtlwq472235338的博客 596

从零开始CNVD漏洞挖掘:资产收集与实战技巧全解析

网络安全的核心在于识别和修复系统缺陷,其中漏洞挖掘是发现潜在风险的关键技术。其原理是通过系统化的方法,对目标资产进行信息收集、服务探测和深度测试,从而定位安全弱点。这项技术的价值在于能够主动防御,帮助企业和组织在攻击发生前修补漏洞,保障数据和服务安全。在实际应用中,漏洞挖掘广泛应用于企业安全评估、渗透测试和漏洞众测等场景。通过结合自动化工具与手工测试,安全从业者可以高效地发现SQL注入、XSS、逻辑漏洞等常见安全问题。本文聚焦于CNVD漏洞挖掘的完整流程,特别强调资产收集作为基础环节的重要性,并详细介绍了子

weixin_34414196的博客 451

某个OA系统的代码审计

2023年HVV中爆出来的洞了,但是有一些漏洞点修复了,刚好地市级的攻防演练中遇到了一个,想着把可能出现问题的点全部审计一下,顺便熟悉一下.net代码审计。ps:感兴趣的师傅们可以自行根据poc搜索源码。0x1 反编译好吧,当我没说,下载dnspy反编译即可,但是首先要找到web逻辑代码才能开始审计,因为这套oa是使用了m...

weixin_41306232的博客 118

从OWASP到CVE:构建漏洞实战研究的认知-工具-实践闭环

在网络安全领域,理解漏洞原理是构建防御体系的基础。从概念上讲,漏洞本质上是软件在设计与实现中存在的缺陷,攻击者利用这些缺陷可执行未授权操作。其核心原理往往源于数据与指令边界模糊、访问控制失效或安全配置错误等根本原因。掌握这些原理的技术价值在于,能系统化地分析安全风险,而非孤立地应对单个威胁。在实际应用场景中,无论是进行渗透测试、漏洞研究还是系统加固,都需要一套将通用漏洞框架与具体漏洞实例结合的方法。OWASP Top 10作为广泛认可的安全风险清单,提供了漏洞类型的宏观视角;而CVE则记载了具体的漏洞实例。

weixin_30500473的博客 427

4、通达OA代码审计

【代码】4、通达OA代码审计。

Yzz_的博客 927

万户OA漏洞分析、利用与防护

万户OA 除了 /defaultroot/officeserverservlet 接口外的另一处接口 OfficeServer.jsp 同时也存在任意文件上传漏洞,导致攻击者可上传任意文件获取服务器权限。万户OA download_ftp.jsp文件存在任意文件下载漏洞,攻击者通过漏洞可以下载服务器上的任意文件。万户OA download_old.jsp文件存在任意文件下载漏洞,攻击者通过漏洞可以下载服务器上的任意文件。2.使用防火墙等设备对所有相关poc进行检测、防护。可直接上传恶意jsp文件。

不忘初心,护天下安全! 3925

433M无线遥控器EV1527协议解码实战:从逻辑分析到代码优化

本文详细解析了433M无线遥控器EV1527协议的实战解码过程。从使用逻辑分析仪抓取波形、理解同步头与数据位编码原理开始,逐步深入代码实现。文章重点对比了原始定时器轮询法的痛点,并提出了基于“边沿捕获+时间戳”的优化方案,构建了高效、可移植且具备抗干扰能力的解码引擎,最后分享了跨平台移植的核心技巧。

weixin_29168813的博客 927

2026年渗透测试面试题总结-36(题目+回答)

安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。

soc的博客 596

41-dify案例分享-基于database插件实现Text2sql的数据库查询图表工作流

本文介绍基于 Text2SQL 的 Dify 工作流实现过程。先阐述 Text2SQL 概念、步骤及应用领域。接着说明工作流制作,包括用 chatflow 加开场白、获取系统时间,配置 LLM 生成 SQL,用 SQL Execute 工具查询,经 LLM 汇总结果,代码生成 ECharts 数据,条件分支判断图表类型输出。最后介绍验证测试、提供体验地址,还提及借助工具生成建表和初始化数据 SQL 语句。

个人技术 1万+

【SRC漏洞挖掘系列】第15期:自动化与AI赋能 —— 打造你的专属“漏洞挖掘机”

这篇文章分享了如何利用Python和AI技术实现自动化漏洞挖掘,提升安全测试效率。主要内容包括: Python自动化脚本 使用requests库快速构建漏洞探测器,如Log4j批量检测 结合爬虫工具自动收集参数并注入测试payload AI赋能安全测试 代码审计:让AI快速识别安全风险 免杀技巧:AI生成绕过WAF的payload变体 漏洞利用:根据CVE描述自动生成EXP脚本 自动化工作流设计 从资产发现到漏洞验证的完整自动化流程 AI辅助漏洞复核和报告生成 文章强调技术伦理,

c_program113的博客 1001

(南京观海微电子)——GH700X调试指南--SPI 接口+LVDS-测试盒使用方法

1表示OTP完成后,读取烧录值是否一致来判断是否烧录成功,2表示同时检测VCOM是否一致以及烧录次数是否增加,3表示不做任何检测,由用于自行在程序中判断。[格式]:SetFindVcomEn (<开启或关闭>),ON表示开启VCOM搜寻,默认是开启的,只要使能OTP烧录,按OTP按键则进行VCOM查询;[功能]:OTP完成检测类别,用于设置OTP完成后检测OTP次数还是OTP值来判断OTP是否成功。[功能]:用于设置VCOM查询使能,比如需要烧全代码而不需要对VCOM查询时,可以禁止VCOM查询。

m0_75095200的博客 1666

新手别怕!用嘉立创EDA从零画一块ESP8266最小系统板(附完整PCB源文件)

本文详细指导新手如何使用嘉立创EDA从零开始设计ESP8266最小系统板,涵盖原理图绘制、PCB布局、布线技巧及设计验证等关键步骤。通过实战案例和实用技巧,帮助读者快速掌握PCB设计基础,轻松打造自己的物联网开发板,并附完整PCB源文件供参考。

weixin_28716769的博客 619

SRC漏洞挖掘实战指南:从零构建白帽子的方法论与工具链

漏洞挖掘是网络安全领域的核心实践,其本质在于理解应用逻辑并发现预期与实现之间的安全偏差。从原理上讲,它要求测试者深入理解常见漏洞(如SQL注入、XSS)的成因与利用条件,这构成了手工验证与深入分析的基础。这项技术的价值在于能够主动发现并修复系统潜在的安全风险,提升整体安全水位。其应用场景广泛覆盖Web应用、移动端API及各类在线业务系统。在实战中,高效的信息收集与精准的工具使用至关重要,例如利用Burp Suite进行抓包与重放,或结合子域名枚举工具绘制完整的攻击面。掌握从基础认知到逻辑漏洞挖掘的完整能力分

chaoyv 550

Node框架之NestJS入门学习

文章主要分为三部分:1 NestJS 与Egg对比2 NestJS 基础知识介绍3 使用NestJS快速搭建应用,实现CURD操作e-link文档Egg官网NestJS 官网NestJS中文文档(非官方)

十九万里的博客 4742

SRC漏洞挖掘实战指南:从零构建白帽子的系统化狩猎思维与工具链

网络安全领域中,漏洞挖掘是识别和利用系统安全缺陷的核心技术活动。其基本原理是通过系统性的信息收集、攻击面测绘和针对性测试,发现软件或网络架构中可能被恶意利用的弱点。掌握这项技术不仅有助于理解现代应用安全防御的薄弱环节,更能为企业安全建设提供正向价值。在工程实践层面,高效的信息收集(如子域名枚举、端口扫描)与精准的漏洞探测(如SQL注入、越权访问测试)构成了技术落地的关键。本文聚焦于**SRC(安全应急响应中心)漏洞挖掘**这一具体应用场景,深入剖析如何将通用的安全测试方法论,转化为在合规框架内持续产出有效漏

weixin_30920853的博客 431

【ESP32-IDF】I2S音频协议实战:从PDM麦克风到PCM扬声器的全链路解析

本文深入解析ESP32-S3的I2S音频协议,从PDM麦克风采集到PCM扬声器输出的全链路实现。详细介绍了硬件PDM转PCM、Standard模式配置及混合模式协同工作,提供实战代码与性能优化建议,助力开发者高效完成嵌入式音频项目开发。

pea55的博客 888

OSCP-Challenge 2 - Relia

使用andrea:PasswordPassword_6登录远程桌面,在c盘根目录下发现一个计划任务的ps,文件,修改执行的exe位木马,获取到milana用户的反弹shell。,发现开放了一个8000端口,但是我们外部是访问不到的,它对应的页面是/var/www/internal/,这个目录下的文件我们是可以访问的,把这个文件打个包放到本地分析下。其中数据的可以直接连接mssql,但是端口是49965,不过在数据库中没发现什么可用的信息,但是可以修改密码直接进后台,这个可以先放放。

羽的博客 7768

当AI学会“挖洞”:从Mythos到360漏洞挖掘智能体

Anthropic因为怕模型被滥用,选择不公开 Claude Mythos Preview。但它的测试结果还是通过行业报告传了出来。这就像一项强大的技术出来了——它可以是。

2401_84760527的博客 791

基于YOLO26/11/v8算法的Web目标检测系统,人脸表情识别系统,Django+Vue3 的前后端分离,实现摄像头实时识别,YOLO26/YOLO11/v8 + LLM大模型智能分析,科研必备

在人工智能迈向通用化(AGI)的今天,“视觉感知 + 语言理解”的多模态联合是未来的趋势。单纯的检测画框已经无法满足复杂的业务需求,如何让系统“看懂”画面并进行“思考”,是当前视觉项目的重点。我们知道目标检测是计算机视觉中的重要任务,广泛应用于安防监控、自动驾驶、智能家居等领域。因此本项目将 YOLO 目标检测模型(兼容 YOLO26/v11/v8 系列)与 DeepSeek 等顶流大语言模型(LLM) 进行联合,使用 Django (后端) + Vue3 (前端) 技术栈

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 2839

Mythos:通用AI模型如何重塑漏洞挖掘与渗透测试范式

软件漏洞挖掘正从依赖人工经验与规则匹配的传统模式,转向基于通用大模型的深度符号执行与系统级因果推理。Mythos作为前沿通用AI模型,其核心能力并非局限于网络安全领域,而是通过在复杂符号系统中建模状态机、推导内存布局、构造攻击链等通用智能,实现对零日漏洞的自主发现与利用生成。这种能力突破了沙盒约束与领域边界,使传统WAF、SAST和人工红队的防御逻辑面临根本性挑战。它已在FreeBSD内核、FFmpeg解码器等真实系统中验证跨时间尺度(16–27年)的深度审计能力,并推动云厂商、开源基金会与安全团队重构安全

weixin_34128839的博客 527

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

当AI学会“挖洞”:从Mythos到360漏洞挖掘智能体,网

Anthropic因为怕模型被滥用,选择不公开 Claude Mythos Preview。但它的测试结果还是通过行业报告传了出来。这就像一项强大的技术出来了——它可以是。

m0_71745258的博客 607

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

2025年国产工具3大突破:看国内项目管理软件如何改写研发协作规则?

2025年,《数据安全法》实施细则的落地加速了国产化替代进程,而《国产信创适配白皮书》的发布进一步明确了国产工具在金融、能源、政务等强监管领域的渗透路径。的零代码开发能力,使得用户无需编程即可快速搭建符合自身业务场景的项目管理系统,这种“通用+定制”的模式,使得国产工具在医疗、教育、金融等多个行业中实现了深度渗透。在数字化转型加速推进的背景下,2025年的国产项目管理软件迎来了三大核心突破,彻底重构了企业研发协作的规则。,这些工具通过技术创新和生态构建,成功实现了从功能替代到技术引领的跨越。

zentao_pms的博客 2190
上一篇: [未公开0day]畅捷通T+存在文件上传漏洞
下一篇: [未公开0day]用友nc存在fastjson漏洞
LiangYueSec
博客等级 码龄2年 560粉丝 37原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值