java审计之ofcms(三)

简介: java审计之ofcms

任意文件上传

看到一个上传

d28fe7f70062693b8e979068f6c74528_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

还是根据数据包 找到代码

5578dd04d200bae1acda8f2a57d97a7a_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

这里代码很少 一步一步跟进

86728037291159ca019de874aea86548_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

da9056a7732e7b95809584b87c5a0d29_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


这里看不出什么 继续跟进

8e83f177de587f4a4488a5dbab3a9505_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

这里通过new MultipartRequest进行上传文件

跟进

cadec6b06487aea18159e1b7792572a9_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

继续

6ed76ad40dfcd0f07660fb75db4519cb_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

这个函数没发现什么

a39290428256d229d7aedc08098c08e4_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

5d966053246f9173146fd48174d73f8b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


发现这个函数

f4503171f982e2a463b89325073e728f_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

会判断jsp和jspx后缀

这里可以就可以通过windows的特性 来进行绕过 上传文件名为.jsp.

测试

6d33af0bacaa1aed2aa9fba76d77fc3e_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

3ecf0a7ba43f4f43a08062825e859841_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


第二处

5fe352a307c58b556e2e9dc16e2ff6c1_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

这个函数也是和上面一样的 可以进行任意文件上传

148c48c53834790bd79af2567c320104_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

45c2c166ca37b4f1bbf58b7fcf1369d0_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

这些都可以

越权修改密码

先创建一个普通用户

然后登录 修改密码

9f4aa56083fe2d959c28b37fa8b80b31_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

65f1b6a605e3ec767e6944db5a700077_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


这里可以看到有一个user_id 修改这个 这里相当于 平常黑盒测试一样 改为1

c372b92eb3603c318e60a2e6afdfc517_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

a88ddb94fc32b17d6d6ad54133461061_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

可以看到admin的密码也变成asd123了

代码分析 根据数据包找到controller

57ef01979b54a1b75dad895ac7fb7e25_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

177942c0b461b62d857566b22fc10e08_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

71645e19a37d880dfd6727cdee63d17d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

根据日志也可以看到  是根据id来进行修改密码的 没有进行id和用户的绑定

有了修改密码的前提  我们会想到修改资料这些

3b59684b8b2846a4702b6fc6e702722b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

ecadf44b9e643a8cad3c7fad372ad53d_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


模板注入

在pom.xml发现cms使用freemarker

在后台存在模板的修改

payload:<#assign value="freemarker.template.utility.Execute"?new()>${value("calc.exe")}

b6f2e1c80a493c5b0e3466506599088b_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png

8041949f44509dd7854e1417bea4ef4c_640_wx_fmt=png&wxfrom=5&wx_lazy=1&wx_co=1.png


参考:https://blog.csdn.net/Little_jcak/article/details/126420014

https://blog.csdn.net/weixin_44522540/article/details/122844068

相关文章
|
12月前
|
安全 Java API
Java审计之Freemarker模板注入漏洞
Java审计之Freemarker模板注入漏洞
10319 1
|
12月前
|
存储 XML SQL
Java审计之XSS篇
继续 学习一波Java审计的XSS漏洞的产生过程和代码。
125 0
Java审计之XSS篇
|
12月前
|
SQL 安全 前端开发
Java审计之SQL注入篇
本篇文章作为Java Web 审计的一个入门文,也是我的第一篇审计文,后面打算更新一个小系列,来记录一下我的审计学习的成长。
278 0
|
存储 Java 应用服务中间件
Java代码审计之jspxcms审计(三)
Java代码审计之jspxcms审计
390 0
Java代码审计之jspxcms审计(三)
|
Java
Java代码审计之jspxcms审计(二)
Java代码审计之jspxcms审计
217 0
Java代码审计之jspxcms审计(二)
|
存储 Java 数据库连接
Java代码审计之jspxcms审计(一)
Java代码审计之jspxcms审计
202 0
Java代码审计之jspxcms审计(一)
|
XML 前端开发 JavaScript
|
SQL Java 关系型数据库
|
2天前
|
安全 Java 调度
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第12天】 在现代软件开发中,多线程编程是提升应用程序性能和响应能力的关键手段之一。特别是在Java语言中,由于其内置的跨平台线程支持,开发者可以轻松地创建和管理线程。然而,随之而来的并发问题也不容小觑。本文将探讨Java并发编程的核心概念,包括线程安全策略、锁机制以及性能优化技巧。通过实例分析与性能比较,我们旨在为读者提供一套既确保线程安全又兼顾性能的编程指导。
|
1天前
|
安全 Java 开发者
深入理解Java并发编程:线程安全与性能优化
【5月更文挑战第15天】本文将深入探讨Java并发编程的核心概念,包括线程安全和性能优化。我们将通过实例分析,理解线程安全的重要性,并学习如何通过各种技术和策略来实现它。同时,我们也将探讨如何在保证线程安全的同时,提高程序的性能。