- 序言
偶然拿到一款基于Spring开发的建站系统,简单看了看Web.xml,发现Servlet前面存在一个全局安全过滤,然后得到路由为Controller/方法名.do,接着直接定位到Class文件中,下文主要介绍本次审计中发现的安全问题。
- Xss
在XxxxxController.Class中
关键代码如下:String callback = request.getParameter("callback"); jsonStr = ";" + callback + "(" + result.toString() + ")"; out.write(jsonStr);
前端不经过任何过滤,直接通过Request.getParameter获取参数,Out.write输出到前端解析导致Xss漏洞。
- 任意文件上传
在XxxxxController.Class中
接着跟到module类的tipOffService.saveTipOff中
可以看到没有对后缀存在任何过滤,导致任意文件上传。
关键代码如下:String path2 = Utils.uploadFile(video, String.valueOf(hdjlPath) + "/tipOff/video"); if (Utils.isNotNullOrEmpty(tipOff.getVideo())) { File file2 = new File(String.valueOf(SystemParamConfigUtil.getParamValueByParam("zdzyUploadPath")) + tipOff.getVideo()); if (file2.exists()) { file2.delete(); } } tipOff.setVideo(path2);
- 逻辑漏洞(越权删除纠错信息)
在XxxxxController.Class中,没有做权限校验,任意不信任的用户都可以调用此类
跟到this.recoveryService.deleteRecovery中
import cn.com.trueway.cms.core.dao.RecoveryDao;
是数据库处理的包,这里传入的ID会到传入进Sql语句,不过当然程序员使用${id}防止了Sql注入。String sql = JdbcUtil.montageSql("select t.id,t.email,t.ip,t.phone,t.name,a.msg_title,c.column_name,s.site_name from t_cms
- 未授权访问
在XxxxxController.Class中
取出所有管理员信息并且以xml的形式打印到Html页面
BY:先知论坛
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论