代碼審計:bluecms 資料修改xss漏洞復現

代碼審計:bluecms 資料修改xss漏洞復現

bluecms

BlueCMS是一款專注於地方門戶網站建設解決方案,基於PHP+MySQL的技術開發,全部源碼開放。
復現版本爲bluecmsv1.6版本,各位可自行下載。

代碼審計

這次不用Seay挖xss漏洞,我們通過關鍵功能測試來審計xss漏洞。
在後臺->會員管理->會員列表處,管理員是可以查看會員信息的,要是此處信息能從前臺插入xss代碼,就能盜取管理員cookie。
在這裏插入圖片描述
來到會員資料修改處,嘗試進行資料的修改,
可以看到可控的有郵箱,msn,qq,電話,地址。
在這裏插入圖片描述
抓包分析得知,該功能在user.php的edit_user_info方法中實現。

//編輯個人資料
 elseif($act == 'edit_user_info'){
	 $user_id = intval($_SESSION['user_id']);
	 if(empty($user_id)){
		 return false;
	 }
	$birthday = trim($_POST['birthday']);
	$sex = intval($_POST['sex']);
    $email = !empty($_POST['email']) ? trim($_POST['email']) : '';
    $msn = !empty($_POST['msn']) ? trim($_POST['msn']) : '';
    $qq = !empty($_POST['qq']) ? trim($_POST['qq']) : '';
    $mobile_phone = !empty($_POST['mobile_phone']) ? trim($_POST['mobile_phone']) : '';
    $office_phone = !empty($_POST['office_phone']) ? trim($_POST['office_phone']) : '';
    $home_phone   = !empty($_POST['home_phone']) ? trim($_POST['home_phone']) : '';
	$address = !empty($_POST['address']) ? htmlspecialchars($_POST['address']) : '';

	if (!empty($_POST['face_pic1'])){
        if (strpos($_POST['face_pic1'], 'http://') != false && strpos($_POST['face_pic1'], 'https://') != false){
           showmsg('只支持本站相對路徑地址');
         }
        else{
           $face_pic = trim($_POST['face_pic1']);
        }
    }else{
		if(file_exists(BLUE_ROOT.$_POST['face_pic3'])){
			@unlink(BLUE_ROOT.$_POST['face_pic3']);
		}
	}

	if(isset($_FILES['face_pic2']['error']) && $_FILES['face_pic2']['error'] == 0){
		$face_pic = $image->img_upload($_FILES['face_pic2'],'face_pic');
	}
    $face_pic = empty($face_pic) ? '' : $face_pic;

	$sql = "UPDATE ".table('user')." SET birthday = '$birthday', sex = '$sex', face_pic = '$face_pic', email = '$email', msn = '$msn', qq = '$qq'," .
			" mobile_phone = '$mobile_phone', office_phone = '$office_phone', home_phone = '$home_phone', address='$address' WHERE user_id = ".intval($_SESSION['user_id']);
	$db->query($sql);
	showmsg('更新個人資料成功', 'user.php');
 }

地址處有過濾,不考慮;
郵箱,msn,qq,電話沒有過濾,但是在數據庫中,qq和電話有長度限制,排除;
最後剩下郵箱和msn似乎存在xss漏洞。
在這裏插入圖片描述

漏洞復現

回到會員資料修改處,郵箱和msn都插入xss代碼,點擊確認修改。
在這裏插入圖片描述
可以看到彈窗了。
在這裏插入圖片描述
後臺查看會員列表,也順利彈窗了。
在這裏插入圖片描述
可以看出,郵箱的xss插入成功,而msn的沒有,所以是郵箱處存在xss漏洞。
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章