diy/poscms/model/member.php的596行的 public function login($username, $password, $expire, $back = 0, $is_uid = 0)好像是有個漏洞,但接入UCSSO_API時候。如果這個用戶名在本地有,在UCSSO沒有的時候,不校驗本地密碼就用當前的密碼往UCSSO注冊了。這樣就導致,一個賬號如果在一個系統(tǒng)有的(沒同步過去UCSSO),用隨意密碼就可以登陸,并在UCSSO中用這個密碼登陸。
!$data && $data = dr_vip_login($this->db, $username);
if ($data) {
//如果本地庫有,我們就同步到服務(wù)器去
$rt = ucsso_register($username, $password, $data['email'], $data['phone']);
if (!$rt) {
return -404; # 網(wǎng)絡(luò)異常
}
//var_dump($rt);exit;
if ($rt['code']) {
// 注冊成功了
// 上報uid
$rt2 = ucsso_syncuid($rt['code'], $data['uid']);
if (!$rt2['code']) {
return -5; #同步uid失敗
}
$synlogin.= ucsso_synlogin($data['uid']);
} else {
return 0;
}
}
請官方看看是否有這個問題。在這之前沒有校驗本地的密碼是否匹配。
UCSSO沒維護了
開源是一種精神,但不是義務(wù),幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!