泛微VerifyGDLogin.jsp前台任意用户登录漏洞分析

漏洞接口

1
/login/VerifyGDLogin.jsp

request中接收两个参数para1para2,分别对应urluserid,然后调用PoppupRemindInfoUtil.decrypt(userid)对其进行解密。然后会将解密后的userid作为参数调用VerifyGDLogin.getUserCheck方法。

image-20240105133049720

PoppupRemindInfoUtil.decrypt方法默认是通过读取AESpassword.properties配置文件中的pwd字段的值对userid进行AES进行解密。

image-20240105133233526
image-20240105140115733

getUserCheck方法会通过useridHrmResourceHrmResourceManager表中获取该用户信息,并将信息赋值给User对象,最后在93行设置到session中。

image-20240105140342091
image-20240105140405691
image-20240105140433757

最后只需要知道AESpassword.properties配置文件中的pwd密钥,使用密钥通过AES加密userid,即可通过该接口实现任意用户登录。