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套路:越权查看他人信息
漏洞复现
该系统可能没有完成开发,对某些权限校验不严格
黑盒测试:
当前有三个角色:
权限除了管理员,剩余都给了部分权限,现在随便来到一个账户
点击基本资料,直接将自己的权限提升到管理员即可。
代码方面分析:
使用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(#换成@)