文章预览
越权重置密码: 漏洞 复现: 新增用户test密码:111111,并登录test用户 看见为test用户,点击修改密码,抓包,将user_id修改为1,则成功修改管理员密码 代码分析: 根据数据包找接口system/user 定位到控制层,找到方法respwd进行分析: 该函数先用获取数据包请求参数,并用equals方法进行一致性对比,失败返回,一致则进入下一层。 创建一个 Record 对象,用于封装待更新的用户信息。再次检查输入密码是否为空,使用 SHA-256 哈希算法对旧密码进行加密,并将其转换为十六进制字符串表示。 并用record对象封装user_id值(此处user_id值由用户传入,为进行任何权限校验,直接用作修改对象的标识符)。 将fengzhuanghaoderecord对象传入,并调用 Db.update() 方法更新数据库表 AdminConst.TABLE_OF_SYS_USER 中用户的密码,由此造成越权修改任意用户密码。 SQL注入漏洞: 漏洞
………………………………