仅供参考:
我是自己当笔记来用的,勿喷
一、MVC概念
MVC 最早出现在 JavaEE 三层中的 Web 层,它可以有效的指导 Web 层的代码如何有效分离,单独工作。
- Model :模型层(用于数据库打交道)
- View :视图层(用于展示内容给用户看)
- Controller :控制层(控制业务逻辑)
二、目标
beescms,可以在github上直接搜,下载下来部署即可
对这个cms进行文件上传的挖掘
三、审计方法
1.关键字
(1)文件上传 (2) $_files (3)move_uploaded_file 等
2.功能点发现
一些会员中心,上传头像,文件之类的
3.进行断点调试
四、关键字查询
在这么多文件中有关键字,查看一下关键字对应的文件,配合抓包进一步分析
五、抓包分析
定位到两个name
file_info,uppic
六、定位追踪分析
1.up_file
在这些条件判断里,出现了up_file自定义函数,一般来说,系统封装好的函数很难出现漏洞。这种自定义函数是容易出现漏洞的。
2.up_file
这里先用了pathinfo进行了文件名,后缀名的一个截取
之后验证是否在数组中 in_array
3.pathinfo
就是来取最后一个.后的后缀来进行验证。经过一番尝试,无法突破限制
而且是随机字符串和最后一个后缀拼接,无法既绕过验证,有上传可执行的后缀文件,。
七、/admin/admin_pic_upload.php
在这里我们可以判断出 此代码是用 mine中的文件后缀名来进行验证比对,修改mine类型即可绕过。
八、上传webshell
成功绕过,图片路径也可以在返回包中找到,所以可以利用。