JeecgBoot 框架passwordChange接口存在任意用户密码重置漏洞,未经身份验证的远程攻击者可以利用此漏洞重置管理员账户密码,从而接管系统后台,造成信息泄露,导致系统处于极不安全的状态。
body="/sys/common/pdf/pdfPreviewIframe"
nuclei
afrog
xray
1、关闭互联网暴露面或接口设置访问权限
2、厂商已尚未提供漏洞修补方案,请关注厂商主页及时更新:
https://www.jeecg.com/
原文始发于微信公众号(nday POC):JeecgBoot passwordChange 任意用户密码重置漏洞
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
2025年1月20日 下午7:40 1F
/**
* 用户更改密码
*/
@GetMapping("/passwordChange")
public Result passwordChange(@RequestParam(name="username")String username,
@RequestParam(name="password")String password,
@RequestParam(name="smscode")String smscode,
@RequestParam(name="phone") String phone) {
Result result = new Result();
if(oConvertUtils.isEmpty(username) || oConvertUtils.isEmpty(password) || oConvertUtils.isEmpty(smscode) || oConvertUtils.isEmpty(phone) ) {
result.setMessage("重置密码失败!");
result.setSuccess(false);
return result;
}
SysUser sysUser=new SysUser();
//update-begin-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
String redisKey = CommonConstant.PHONE_REDIS_KEY_PRE+phone;
Object object= redisUtil.get(redisKey);
//update-end-author:taoyan date:2022-9-13 for: VUEN-2245 【漏洞】发现新漏洞待处理20220906
if(null==object) {
result.setMessage("短信验证码失效!");
result.setSuccess(false);
return result;
}
if(!smscode.equals(object.toString())) {
result.setMessage("短信验证码不匹配!");
result.setSuccess(false);
return result;
}
sysUser = this.sysUserService.getOne(new LambdaQueryWrapper().eq(SysUser::getUsername,username).eq(SysUser::getPhone,phone));
if (sysUser == null) {
result.setMessage("当前登录用户和绑定的手机号不匹配,无法修改密码!");
result.setSuccess(false);
return result;
} else {
String salt = oConvertUtils.randomGen(8);
sysUser.setSalt(salt);
String passwordEncode = PasswordUtil.encrypt(sysUser.getUsername(), password, salt);
sysUser.setPassword(passwordEncode);
this.sysUserService.updateById(sysUser);
//update-begin---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
baseCommonService.addLog("重置 "+username+" 的密码,操作人: " +sysUser.getUsername() ,CommonConstant.LOG_TYPE_2, 2);
//update-end---author:wangshuai ---date:20220316 for:[VUEN-234]密码重置添加敏感日志------------
result.setSuccess(true);
result.setMessage("密码重置完成!");
//修改完密码后清空redis
redisUtil.removeAll(redisKey);
return result;
}
}
建议贵站不要随便采集公众号的文章,建议文章都审核一遍,要不来这看文章就没意义了!!
2025年1月20日 下午10:56 B1
@ noname 我们后续将尽力改善,感谢师傅的支持和指导