代码位置 plugins\avatar\avatar.class.php
首先通过$this->init_input($this->getgpc('agent', 'G'));跟进去
可以看到$input = $this->authcode($input, 'DECODE', 'deck');其中key是固定的。这个过程就是dz那个函数加密,然后注册变量。我们回过头来看这句代码
如果uid和filetype这两个变量可控的话,就估计就好玩了。
其中
这uid肯定可以控制了。然后继续看到
这个很好bypass,我们只有上传bmp格式的图片就行。因为bmp不再这个数组里面,所以得到的$filetype就是为空。
然后所有条件都达成了。我们只要将uid=一个php文件名称加密一下就行了。具体看漏洞证明
注入
代码见plugins\html\areas.inc.php
然后看plugins\index.php
通过这个包含进来的。但是有个全局的waf。就是这个waf导致安全狗完全失效
看到这个我笑了。写两次不就绕过了。而且狗都认不到了
第二处注入类似
getshell过程
第一步
先拿到加密后的密文
然后构造
只要像这个地址上传一个bmp文件就行。
然后成功shell了
由于这是一个加密解密的操作,所以安全狗什么的并没有什么卵用。
注入