oasys系统代码审计

打印 上一主题 下一主题

主题 917|帖子 917|积分 2751

简述:

oasys是一个OA办公自动化系统,利用Maven进行项目管理,基于springboot框架开发的项目,mysql底层数据库,前端采用freemarker模板引擎,Bootstrap作为前端UI框架,集成了jpa、mybatis等框架。
下载地址:https://github.com/misstt123/oasys
此项目部署极为简朴,我利用的是phpstudy的5.7版本mysql,修改application.properties配置,在IDEA导入oasys.sql数据后,就可以直接运行
[img=720,135.5421686746988]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626386.png[/img]

并访问后台地址:http://localhost:8088/logins
留意别端口冲突
CSRF:

登录后台,在用户面板处,修改便签功能存在csrf毛病。
[img=720,322.83687943262413]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626387.png[/img]

点击修改,抓包,点击生成CSRF的Poc:
[img=720,451.9893899204244]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626388.png[/img]

将生成Poc的URL复制到浏览器,访问:
[img=720,382.0174741858618]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626389.png[/img]

访问后,发现已经按照Poc上内容进行了修改:
[img=720,245.86750788643533]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626390.png[/img]

SQL注入:

代码分析:

在pom文件发现采用mybatis依靠:
[img=720,194.04255319148936]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626391.png[/img]

全局搜刮${
[img=720,536.7981438515081]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626392.png[/img]

找到outtype参数,定位到xml文件:
[img=720,346.8804664723032]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626393.png[/img]

符合sql注入条件,于是开始找对应接口,参数,全局搜刮allDirector字段:
[img=720,233.83761276891047]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626394.png[/img]

定位到接口层,于是找接口实现类,发现无,于是全局搜刮该接口名称,找哪里引用了此接口:
[img=720,274.67040673211784]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626395.png[/img]

发现AddController层引用该接口,并通过mapper进行数据库操作,在该controller层搜刮原接口方法,定位到具体代码块:
[img=720,421.66975881261595]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626396.png[/img]

可以看到该参数没有经过任何过滤,于是根据代码块解释进行毛病复现:
[img=720,193.8255033557047]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626397.png[/img]

在后台找到通讯录,找到外部通讯录,点击添加接洽人:
[img=720,413.1333859510655]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626398.png[/img]

抓包找到对应数据包:
[img=720,700.4685573366214]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626399.png[/img]

将localhost换成自己对应的IP,放入sqlmap验证乐成:
[img=720,118.10725552050474]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626400.png[/img]

其实从最初的xml文件来看,其它几个参数也存在sql注入。
【----帮助网安学习,以下全部学习资料免费领!加vx:dctintin,备注 “博客园” 获取!】
 ① 网安学习成长路径头脑导图
 ② 60+网安经典常用工具包
 ③ 100+SRC毛病分析报告
 ④ 150+网安攻防实战技术电子书
 ⑤ 最权威CISSP 认证测验指南+题库
 ⑥ 超1800页CTF实战本领手册
 ⑦ 最新网安大厂口试题合集(含答案)
 ⑧ APP客户端安全检测指南(安卓+IOS)
存储XSS:

登录后台后,用户处点击修改信息,插入xss代码造成弹窗。
[img=720,479.55]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626401.png[/img]

根据提交生存的接口全局搜刮:
[img=720,432.3543888433142]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626402.png[/img]

找到相关信息,根据代码分析,无任何过滤直接存储,造成xss毛病:
[img=720,573.2484076433121]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626403.png[/img]

此后台许多地方也均无过滤,可以直接插入xss代码实行。
任意文件读取毛病:
在控制层UserpanelController处,如下代码存在逻辑错误导致任意文件读取:
[img=720,446.542750929368]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626404.png[/img]

可以看出此代码块是用来处置惩罚图像请求,并将数据返回到http响应的代码。
这段代码我初看并没看懂,于是对代码进行具体分析:
[img=720,333.5197568389058]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626405.png[/img]

红框代码逻辑很简朴,先传入的f.getPath()值,再通过FileInputStream进行文件读取并返回到http响应。
关键就是f.getPath()的值怎么来的?
[img=720,347.42857142857144]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626406.png[/img]

如上红框代码,f.getPath()的值来自于rootpath与path的拼接,而path的值则是,先通过request.getRequestURI()获取,再将/image替换为空得来。
但rootpath的值呢?
于是我在该类搜刮rootpath找到其定义代码:
[img=720,210.30339083878644]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626407.png[/img]

发现以@Value注解定义rootpath的值,而@Value注解的作用就是从项目配置文件中获取信息,于是转到配置文件,搜刮关键字:rootpath
[img=720,346.62857142857143]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626408.png[/img]

继续回到controller代码,此时找到rootpath的值,也明白了读取文件的逻辑,于是实行构造多个/image..路径读取我D盘upload下的文件:
[img=720,244.48818897637796]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626410.png[/img]

如下图,读取乐成:
[img=720,382.0199146514936]https://m-1254331109.cos.ap-guangzhou.myqcloud.com/202411061626411.png[/img]

更多网安技能的在线实操练习,请点击这里>>
  

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

道家人

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表