# ContentAction.getFromFengMian接口存在权限检查缺失的问题 net.mingsoft.cms.action.getFromFengMian接口缺失权限检查(即 `@RequiresPermissions("cms:content:view")`注解),导致没有`"cms:content:view"`权限的用户也可以获取文章列表。 ```Java // file: src/main/java/net/mingsoft/cms/action/ContentAction.java /** * 获取文章 * * @param content 文章实体 */ @Operation(summary = "根据封面获取文章列表接口") @Parameter(name = "categoryId", description = "分类编号", required = true, in = ParameterIn.QUERY) @GetMapping("/getFromFengMian") @ResponseBody public ResultData getFromFengMian(@ModelAttribute @Parameter(hidden = true) ContentEntity content) { if (StringUtils.isBlank(content.getCategoryId())) { return ResultData.build().error(getResString("err.empty", this.getResString("category.id"))); } List<ContentEntity> list = contentBiz.lambdaQuery().eq(ContentEntity::getCategoryId, content.getCategoryId()).list(); if (list.size() > 1) { LOG.error("获取封面文章异常"); } return ResultData.build().success(list.size() > 0 ? list.get(0) : null); } ``` ## 漏洞复现 1. 首先注册一个没有`"cms:content:view"`权限的角色,low_role <img width="2141" height="1240" alt="Image" src="https://github.com/user-attachments/assets/f1d06bb2-1730-4da4-9297-9d8a91f2f38a" /> 2. 之后,为角色low_role创建一个用户 <img width="1566" height="1172" alt="Image" src="https://github.com/user-attachments/assets/5cd5f6a4-c69d-442a-aaea-0388db8707b9" /> 3. 验证用户角色设置成功:通过net.mingsoft.cms.action.list接口访问文章信息,发现没有权限 <img width="1918" height="731" alt="Image" src="https://github.com/user-attachments/assets/b1cb726a-8554-43d7-a296-6ca12ca44b6d" /> 4. 通过net.mingsoft.cms.action.getFromFengMian接口,通过填入封面id获取文章列表信息,说明该接口不存在权限检查 <img width="1919" height="815" alt="Image" src="https://github.com/user-attachments/assets/9ca0fc4b-0a8a-4113-baca-35762411e478" />
ContentAction.getFromFengMian接口存在权限检查缺失的问题
net.mingsoft.cms.action.getFromFengMian接口缺失权限检查(即
@RequiresPermissions("cms:content:view")注解),导致没有"cms:content:view"权限的用户也可以获取文章列表。漏洞复现
"cms:content:view"权限的角色,low_role