开始了
本地搭建完成后,首先进后台上传图片,进行抓包
可以看到访问路径为/admin/attachment/upload/dir/images/module/admin.html
,首先查看admin/attachment/upload
下的代码
打开/application/admin/controller/Attachment.php
文件,查看upload
函数(90~98行),传入dir
、from
、module
三个参数,根据上面抓包内容来看,这里已经传入dir=images
、module=admin
两个参数,并未传入from
参数,因此默认会进入$this->saveFile
接下来看一下saveFile
函数第203~217行,对扩展名进行了校验,并且对后台添加的可上传扩展名进行正则校验,此路GG
接下来是from=ueditor
的情况,可以查看配置文件/public/static/libs/ueditor/php/config.json
第7行
此路不通,继续往下查看jcrop函数(第556~655行)
看关键位置第565~576行
没有任何过滤可直接上传到/public/uploads/temp/
目录,而且还会回显路径???
测试一下吧
完全没问题,打完收工。
写在最后的话
官方在1.4.5的说明里写了修复一处文件上传,但是下载了1.4.4版本的包,跟1.4.5一样,官方可能把1.4.5的Attachment.php文件放到了1.4.4版本里,所以理论来说,这个方法是适用于1.4.5版本以下全版本的。