Tipask 2.0 加密函数破解导致任意用户密码修改

- AV AC AU C I A
发布: 2025-04-13
修订: 2025-04-13

### 简要描述: Tipask问答系统是一款开放源码的PHP仿百度知道程序。以国人的使用习惯为设计理念,采用MVC构架,系统具有速度快,SEO友好,界面操作简洁明快等特点。 但是Tipask中使用的加密算法存在被破解的可能性,因此将导致包括任意用户密码修改等漏洞的发生。 ### 详细说明: 在核心加密算法strcode函数中: ``` /* 通用加密解密函数,phpwind、phpcms、dedecms都用此函数 */ function strcode($string, $auth_key, $action= 'ENCODE') { $key = substr(md5($_SERVER[ "HTTP_USER_AGENT"] . $auth_key), 8, 18); $string = $action == 'ENCODE' ? $string : base64_decode($string); $len = strlen($key); $code = ''; for ($i = 0; $i < strlen($string); $i++) { $k = $i % $len; $code .= $string[$i] ^ $key[$k]; } $code = $action == 'DECODE' ? $code : base64_encode($code); return $code; } ``` 可以看到加密的算法是异或,所以可以用密文和明文异或的方法反过来求出密钥key,如下: ``` function anti_strcode($authstr, $plaintxt) { $key =''; $authstr = urldecode(base64_decode($authstr)); for($i = 0; $i < 18; $i++) { $key .= $authstr[$i] ^ $plaintxt[$i]; } return $key; } ``` key长度为18,因此我们要找一个明文长度超过18而被加密的字串,经过检查,发现cookie中的auth值长度超过了18,因此将针对cookie中的auth进行key猜解。 ### 漏洞证明:...

0%
暂无可用Exp或PoC
当前有0条受影响产品信息