首页 > 其他分享 >oasys 办公OA管理系统 (代码审计)

oasys 办公OA管理系统 (代码审计)

时间:2024-10-23 15:22:47浏览次数:7  
标签:xml mapper oasys 管理系统 OA 语句 SQL XSS 漏洞

一、项目背景:

oasys是一个OA办公自动化系统,使用Maven进行项目管理,基于springboot框架开发的项目,mysql
底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框

二、项目配置:

1、java_version:Java 1.8.0_411

2、数据库: phpstudy内置 MySQL 5.7.26数据库
image

在 application.properties配置文件中进行数据库账密的设置,以确保可以进行连接:
image

3、配置完成后即可启动项目:
image

三、漏洞代码审计:

1、SQL注入审计:

(1) Mybatis 与 mapper.xml:

mapper.xml 文件用于定义 SQL 映射语句,包括查询、插入、更新和删除等操作。每个 mapper.xml 文件通常对应一个 DAO 接口(或 Mapper 接口),并在其中定义具体的 SQL 语句

由配置文件 application.properties中可知后端采用了 Mybatis框架,所以需要重点审计 mapper.xml中的SQL注入问题:
image

(2) 在 mappers文件夹中进行全局搜索 (ctrl + shift + F) 字符 ${,可以看到 mapper.xml中大量使用了 ${}来进行了参数替换,点击其中之一进行跟进:
image

代码使用了 LIKE语句进行了模糊查询,但是 LIKE 后使用了 ${}进行拼接,这会造成SQL注入:
image

点击绿色箭头回到 mapper接口位置:
image

通过分析接口可得接收的第二个参数即为漏洞点 pinyin:
image

跟进 allDirector,查看谁调用了该方法,跟进 AddController.java:
image

显而易见,参数 alph处存在SQL注入,此处的alph参数等效于 ${pinyin}:
image

(3) 根据 接口注释信息以及接口参数,在项目中寻找到漏洞点,漏洞在 "通讯录" -> "外部通讯录"处:
image

来到漏洞位置,点击 "刷新"并抓包:
image

将数据包发送至 sqlmap 中进行梭哈:
image

sqlmap注入语句为:

python sqlmap.py -r 数据包信息.txt --batch --risk=2 --level=2

image

(4) mapper.xml文件中还有其他同理的注入点,比如 ${outtype}:
image

产生原理同样是使用了 ${} 而不是 #{},就不再过多赘述了。

2、XSS审计:

XSS问题通常产生在信息存储并渲染在前端,并且存储语句未作充分的过滤的位置。

在 "用户面板" -> "存储便签" 位置未进行字符过滤从而导致XSS产生:
image

且save()方法中也未进行任何的过滤措施:
image

构造XSS语句产生XSS漏洞:
image

image

标签:xml,mapper,oasys,管理系统,OA,语句,SQL,XSS,漏洞
From: https://www.cnblogs.com/kgty/p/18496312

相关文章

  • Springboot车辆充电桩管理系统的设计与实现mv56d(程序+源码+数据库+调试部署+开发环境)
    系统程序文件列表项目功能:用户,员工,电桩类别,充电桩,报修信息,报修处理开题报告内容Springboot车辆充电桩管理系统的设计与实现开题报告一、研究背景与意义随着电动汽车的快速发展和普及,充电桩作为电动汽车的重要配套设施,其数量和管理效率直接影响到电动汽车的推广和使......
  • 计算机毕业设计项目推荐:基于Web的社区人员管理系统的设计36303(开题答辩+程序定制+全套
    摘要科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用。信息时代的到来已成为不可阻挡的时尚潮流,人类发展的历史正进入一个新时代。在现实运用中,应用软件的工作规则和开发步骤,采用ASP.NET技术建设社......
  • 单月30k+ Downloads!一款头部Embedding开源模型
    在数字化转型的浪潮中,文本数据的处理和分析成为了各行各业关注的焦点。如何将人类阅读的文本转换为机器可理解的形式,并且能够准确地召回和提取这些转换结果,成为了提升我们工作效率和体验的关键。无论是从社交媒体中提取情感倾向,还是对大量文档进行内容相似性分析,或是在复杂的对话......
  • Springboot计算机毕业设计滁州市电动车牌照管理系统cfc49
    Springboot计算机毕业设计滁州市电动车牌照管理系统本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,法律法规,车辆类型,牌照申请,可选牌号,上牌业务,上牌预约,选定牌号,挂失登记,牌照信息,牌照......
  • KnowDLLs 是一个工具,旨在帮助用户识别和管理系统中的动态链接库(DLL)文件。它可以用于检
    WinObj是一个用于查看和分析Windows操作系统对象和对象命名空间的工具,主要用于系统调试和安全分析。它可以帮助用户了解系统中的各种对象,包括文件、进程和注册表项。KnowDLLs则是一个具体的工具,旨在识别和管理系统中的动态链接库(DLL),帮助用户检测潜在的恶意或不必要的DLL文件......
  • 基于Django+Python的宾馆管理系统设计与实现
    项目运行需要先安装Python的相关依赖:pymysql,Django==3.2.8,pillow使用pipinstall安装第一步:创建数据库第二步:执行SQL语句,.sql文件,运行该文件中的SQL语句第三步:修改源代码中的settings.py文件,改成自己的mysql数据库用户名和密码第四步:运行命令:pythonmanage.pyrunser......
  • Springbootspringboot微服务车站寄存柜管理系统oan92
    Springbootspringboot微服务车站寄存柜管理系统oan92本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能:用户,寄存柜,计价规则,用户等级,寄存订单,寄存结束,用户反馈,反馈回复,寄存柜位置开题报告内容......
  • jsp ssm 共享充电宝管理系统 充电宝平台 电源管理 源码 web java
    一、项目简介本项目是一套基于SSM的共享充电宝管理系统,主要针对计算机相关专业的和需要项目实战练习的Java学习者。包含:项目源码、数据库脚本、软件工具等。项目都经过严格调试,确保可以运行!二、技术实现​后端技术:Spring、SpringMVC、MyBatis前端技术:JSP、HTML、CSS、......
  • 【JAVA毕业设计】基于Vue和SpringBoot的课程作业管理系统
    本文项目编号T023,文末自助获取源码\color{red}{T023,文末自助获取源码}......
  • 为什么需要证件管理软件系统?建筑企业证照管理系统有什么特点?
    大多数企业在投标过程中面临一些普遍的问题:每次准备投标时,都需要耗费大量时间和精力来重新整合所有相关资质文件,包括企业资质、项目案例、投标人员证书、奖项和各类认证。而且,常常在临近投标时,才发现某些资质已经过期或存在缺失,导致关键时刻措手不及。此外,由于缺乏有效的管理,......