ofcms V1.2 代码审计(二)

2024-09-22 87 0

1、越权

漏洞发现

注意:首先要自行生成几条测试的用户数据,直接在cms当中可能无法增加,建议在数据库当中进行新建,语句:

INSERT INTO `of_sys_role` (role_name, role_desc, role_type, create_time, update_time, status, remark) VALUES ('财务', '财务', '1', NOW(), NOW(), '1', '11');

常见的SRC套路:越权查看他人信息

漏洞复现

该系统可能没有完成开发,对某些权限校验不严格

黑盒测试:

当前有三个角色:
ofcms V1.2 代码审计(二)插图
权限除了管理员,剩余都给了部分权限,现在随便来到一个账户

ofcms V1.2 代码审计(二)插图1

点击基本资料,直接将自己的权限提升到管理员即可。
ofcms V1.2 代码审计(二)插图2

代码方面分析:

使用burp进行抓包,来到对应路径处SysUserController.java -- update(),具体可以见上篇。

数据包当中有role_id=1是来判断权限的,从代码层面可以看出,是没有任何的权限校验

String roleId = (String) params.get("role_id");
        if (!StringUtils.isBlank(roleId)) {
            SqlPara sql = Db.getSqlPara("system.user.role_update", params);
            Db.update(sql);
        }

2、未授权访问

项目当中使用到了druid,直接进行访问即可(需要登录一个正常账户)
位置http://192.168.1.15:8080/ofcms_admin/admin/druid/header.html

由于项目当中使用到了shiro,查看shiro.ini文件,发现

[urls]  
/admin/logout.html = anon  
/admin/login2.html = anon  
/admin/login.html = anon  
/admin/dologin.json = anon  
/api/** = anon  
/static/** = anon  
/admin/** = authc  
/** = anon

admin目录下的所有东西都需要进行认证才可以访问,所以需要一个正常登录的账户。

3、XSS

此cms没有配置过滤器,但是配置了拦截器,根据文件名称来猜测,其中一个为配置字体的拦截器,一个是配置Restful风格的拦截器。通常情况下XSS的拦截是在过滤器当中的,需要重写doFilter等方法,但是搜索后未发现,于是此cms对XSS没有任何过滤。

于是可以直接进行黑盒测试,由于没有对应的拦截,任何XSS payload均可。

此cms使用到了freemarker组件,所以一般在常规的思路上可以加入对setAttr等函数的审计。

技巧

idea当中正则表达式的搜索,使用CTRL+SHIFT+F来进行正则表达式方式的搜索

例如:当前cms的SQLI搜索可以直接使用

(?<!SqlPara sql = Db\.getSqlPara\(.*\);\s*)Db\.update\(sql\);

来进行搜索

总结

改cms可能没有开发完成,各种权限基本没有做校验,部分只是做了简单的权限校验


4A评测 - 免责申明

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

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

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

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

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

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

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论