1.safekey固定,导致加密函数可逆
2.使用固定的safekey加密后发起攻击请求,加密内容在代码中解密,绕过了过滤
/install/index.php中
这段的功能是写入安装时的各个配置
注意tmpcode下面一行,正则表达式处/\$config\["spam_key"\]这里去匹配$config["spam_key"] =
然后替代成随机生成的spam_key
但是/config.php中是这样的
注意最后一行,$config['spam_key']这个是单引号,而安装时,正则匹配的双引号,造成匹配失败,后果是key就一直没有变过。固定的。
现在,漏洞触发在这里,$this->u_id 可控
/framework/api/usercp_control.php
问题出在这个文件的构造函数和avatar_f
$info = $this->lib('token')->decode($token);这里由于key固定,这个decode和encode完全是可逆的。
然后下面这里将decode后的字符串赋值给$this->u_id
然后avatar_f中这里$this->u_id带入model层
然后api的model在这里 /framework/model/api/user_model.php
如上$this->u_id进来了就执行了