前言:

代码审计学习中,复现几个Finecms的漏洞。

漏洞分析:

第一处:

当我们上传在前台注册一个账号并且上传头像的时候,发出的包如上图。首先,这些数据我们是可以控制的

然后我们在看下后台对这些数据是如何处理的,$file=POST过来的tx,然后用正则匹配,我们看到那么正则了么。问题就出在这里

我们正则过后的文件后缀等于$result[2],而这个值就是tx数据data:image/jpg中的jpg,这个参数上面也说过我们是可以控制的,

文件内容的话就是result[1],这个数据我们也是可以控制,所以我们等同于控制了文件后缀和文件内容。这样我们是不是可以上传任意文件了呢?

路径如下图:

第二处:

这个跟上面一样,也是任意文件上传,但是存在不一样的地方

出问题的就是个这data2函数,我们先看一下

看到没。一样是那个跟新头像的正则出现问题了,我们上面也说过,post 的数据我们是可以控制的,所以我们还是可以上传任意文件,但这里我们要用到sys_key,不过这个值是固定的。看下图

漏洞危害:

1. 任意文件上传任意文件,等同于获得网站权限,一句话菜刀或者大马都可以。如果配置不当或许可提权。

2. 后来的版本已修复,修复思路是对文件后缀加了个检测,如果不是白名单之中的后缀则退出。