oasys系统代码审计

2024-11-17 14 0

简述:

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

下载地址:https://github.com/misstt123/oasys

此项目部署极为简单,我使用的是phpstudy的5.7版本mysql,修改application.properties配置,在IDEA导入oasys.sql数据后,就可以直接运行

oasys系统代码审计插图

并访问后台地址:http://localhost:8088/logins

注意别端口冲突

CSRF:

登录后台,在用户面板处,修改便签功能存在csrf漏洞。

oasys系统代码审计插图1

点击修改,抓包,点击生成CSRF的Poc:

oasys系统代码审计插图2

将生成Poc的URL复制到浏览器,访问:

oasys系统代码审计插图3

访问后,发现已经按照Poc上内容进行了修改:

oasys系统代码审计插图4

SQL注入:

代码分析:

在pom文件发现采用mybatis依赖:

oasys系统代码审计插图5

全局搜索${

oasys系统代码审计插图6

找到outtype参数,定位到xml文件:

oasys系统代码审计插图7

符合sql注入条件,于是开始找对应接口,参数,全局搜索allDirector字段:

oasys系统代码审计插图8

定位到接口层,于是找接口实现类,发现无,于是全局搜索该接口名称,找哪里引用了此接口:

oasys系统代码审计插图9

发现AddController层引用该接口,并通过mapper进行数据库操作,在该controller层搜索原接口方法,定位到具体代码块:

oasys系统代码审计插图10

可以看到该参数没有经过任何过滤,于是根据代码块注释进行漏洞复现:

oasys系统代码审计插图11

在后台找到通讯录,找到外部通讯录,点击添加联系人:

oasys系统代码审计插图12

抓包找到对应数据包:

oasys系统代码审计插图13

将localhost换成自己对应的IP,放入sqlmap验证成功:

oasys系统代码审计插图14

其实从最初的xml文件来看,其它几个参数也存在sql注入。

存储XSS:

登录后台后,用户处点击修改信息,插入xss代码造成弹窗。

oasys系统代码审计插图15

根据提交保存的接口全局搜索:

oasys系统代码审计插图16

找到相关信息,根据代码分析,无任何过滤直接存储,造成xss漏洞:

oasys系统代码审计插图17

此后台很多地方也均无过滤,可以直接插入xss代码执行。

任意文件读取漏洞:

在控制层UserpanelController处,如下代码存在逻辑错误导致任意文件读取:

oasys系统代码审计插图18

可以看出此代码块是用来处理图像请求,并将数据返回到http响应的代码。

这段代码我初看并没看懂,于是对代码进行详细分析:

oasys系统代码审计插图19

红框代码逻辑很简单,先传入的f.getPath()值,再通过FileInputStream进行文件读取并返回到http响应。

关键就是f.getPath()的值怎么来的?

oasys系统代码审计插图20

如上红框代码,f.getPath()的值来自于rootpath与path的拼接,而path的值则是,先通过request.getRequestURI()获取,再将/image替换为空得来。

但rootpath的值呢?

于是我在该类搜索rootpath找到其定义代码:

oasys系统代码审计插图21

发现以@Value注解定义rootpath的值,而@Value注解的作用就是从项目配置文件中获取信息,于是转到配置文件,搜索关键字:rootpath

oasys系统代码审计插图22

继续回到controller代码,此时找到rootpath的值,也明白了读取文件的逻辑,于是尝试构造多个/image..路径读取我D盘upload下的文件:

oasys系统代码审计插图23

如下图,读取成功:

oasys系统代码审计插图24


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

办事处网络安全监控与事件响应;国外员工终端安全性怎么保障 | FB甲方群话题讨论
拿不下总统之位,那就用热加载拿下验证码识别与爆破好了!
Sooty:一款SoC分析一体化与自动化CLI工具
shiro CVE-2016-6802 路径绕过(越权)
Apache Solr 身份验证绕过漏洞(CVE-2024-45216)详解
llama_index的CVE-2024-4181漏洞根因分析

发布评论