### 简要描述: WSS最新版设计缺陷导致任意用户密码重置,包括管理员,官方demo演示 ### 详细说明: WSS最新版设计缺陷导致任意用户密码重置,包括管理员 文件user_edit_password.php ``` <?php require_once('config/tank_config.php'); ?> <?php require_once('session_unset.php'); ?> <?php require_once('session.php'); ?> <?php $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } $password = "-1"; if (isset($_POST['tk_user_pass'])) { $password = $_POST['tk_user_pass']; } $tk_password = md5(crypt($password,substr($password,0,2))); if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf("UPDATE tk_user SET tk_user_pass=%s WHERE uid=%s", GetSQLValueString($tk_password, "text"), GetSQLValueString($_POST['ID'], "int")); mysql_select_db($database_tankdb, $tankdb); $Result1 = mysql_query($updateSQL, $tankdb) or die(mysql_error()); ``` 此文件及功能为修改用户密码,本为后台管理员权限 但是由于设计缺陷,导致未判断用户权限,导致全部用户都可以重置任意用户密码 通过POST[ID]即可重置对应用户密码了 ### 漏洞证明: 官方demo演示:...
### 简要描述: WSS最新版设计缺陷导致任意用户密码重置,包括管理员,官方demo演示 ### 详细说明: WSS最新版设计缺陷导致任意用户密码重置,包括管理员 文件user_edit_password.php ``` <?php require_once('config/tank_config.php'); ?> <?php require_once('session_unset.php'); ?> <?php require_once('session.php'); ?> <?php $editFormAction = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $editFormAction .= "?" . htmlentities($_SERVER['QUERY_STRING']); } $password = "-1"; if (isset($_POST['tk_user_pass'])) { $password = $_POST['tk_user_pass']; } $tk_password = md5(crypt($password,substr($password,0,2))); if ((isset($_POST["MM_update"])) && ($_POST["MM_update"] == "form1")) { $updateSQL = sprintf("UPDATE tk_user SET tk_user_pass=%s WHERE uid=%s", GetSQLValueString($tk_password, "text"), GetSQLValueString($_POST['ID'], "int")); mysql_select_db($database_tankdb, $tankdb); $Result1 = mysql_query($updateSQL, $tankdb) or die(mysql_error()); ``` 此文件及功能为修改用户密码,本为后台管理员权限 但是由于设计缺陷,导致未判断用户权限,导致全部用户都可以重置任意用户密码 通过POST[ID]即可重置对应用户密码了 ### 漏洞证明: 官方demo演示: 官方demo测试账户为只读账户 这里我们利用漏洞可以重置admin用户密码 [<img src="https://images.seebug.org/upload/201411/21230619119b56d2587c392980d77bc4e58b9a69.png" alt="1.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201411/21230619119b56d2587c392980d77bc4e58b9a69.png) 保存成功 如果UID不正确会返回错误,没权限,但是不影响密码重置 这里测试用户的UID=7 重置之后,admin用户登录: [<img src="https://images.seebug.org/upload/201411/21230710e7a8dd96f6edc8d36d5b9f2c0b2ad747.png" alt="2.png" width="600" onerror="javascript:errimg(this);">](https://images.seebug.org/upload/201411/21230710e7a8dd96f6edc8d36d5b9f2c0b2ad747.png)