[vulnerability] 管理员登录缺少速率限制和验证码强制 (CWE-307)
□ 总结
`/admin/auth/login'终点没有提供防自发保护: Captcha 核查已被移除( 已解析), 重复失败没有 触发任何账户关闭, 且没有限制 IP/ 账户级别的利率 。 因此攻击者可以进行无限制的网络野蛮攻击 管理员证书并最终接管管理员后端.
- Type:认证保护薄弱/过度认证尝试限制不当
- ** CWE**:CWE-307
- ** 严重性**:中度(高与默认证书结合)
- ** 构成部分**:`litectall-admin-api'
□ 受影响的终点 POST /admin/auth/日志 源文件 :
Political-admin-api/src/main/java/org/linlinjava/litecall/admin/web/AdminAuth Captain.java 存档副本.□ 细节
- 对Captcha的核查作出评论
在“AdminAuth Captain.login(.)”中,既分析也比较 对`代码 ' 字段作了评论。 Captcha 仍然生成并写入 ,但是在登录时它从未读取或检查(“仅生成,从未” 校验":
贾瓦 公共对象登录( @ requestBody String body, HttpServlet request) { 字符串用户名 = JacksonUtil.parseString(机构,"用户名"); 字符串密码 = JacksonUtil.parseString(正体,"密码"); // 字符串代码 = JacksonUtil.parseString(body,"code";) ;
如果 (StringUtils.isEmpty(用户名) QQ StringUtils.isEmpty(密码)) { 返回反应Util.badArgument (); {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢? // 如果 (StringUtils.isEmpty(代码)) { // 返回回复Util.fail(ADMIN INVALID KAPTCHA REQUIRED,"验证码不能为空"); //}]. / 请检查url=值 (帮助). //届会 = 要求。 // String kaptcha = (string) session. getAttize ("kaptcha") ; 2. / 如果 (Object. require NonNull(code).compare ToIgnoreCase(kaptcha)!) = 0) {(代码) // 返回回复Util.fail(ADMIN INVALID KAPTCHA,“ ”,Do Kaptcha(请求); //}].
当前用户=securityUtils.getSubject(); 尝试{ 当前用户名.login(新用户名PasswordToken(用户名,密码)); {\fn华文仿宋\fs16\1cHD1D1D1}你... {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?
注:前端一致更改——
`litectall-admin/src/views/login/index.vue' 封面形式项目也被包起来
在 HTML 注释中,“登录规则”只包含“用户名”/“密码词”。
因此,这不是** 前端/后端不一致; 顶端特征一直是
两端都禁用。 安全后果是这里最重要的:没有
登录端留下了人与人之间的接触障碍.
2. 无故障关闭
`认证Realm.doGet认证Info (.)' 只投
密码上的 " 未知账户例外 " 。 没有失败的尝试计数器,
没有锁定,也没有“RetryLimit”/“HashedCreditis Matcher”配置
三郎连锁.
3. 不限制费率
端点和Shiro过滤链都没有应用任何 IP 或账户级别
限制利率。
4. 默认种子证书(影响放大器)
`ltemall-db/sql/ltemall data.sql' 船舶违约管理账户:
管理员123 5 . . . . . . .
内容来源: linlinjava/litemall