Catfish CMS任意图片删除

文件路径:\application\user\controller\Index.php

问题代码:91行-----------137行

分析:

第一步:我们来到111行判断上传头像是否是图片,我们来跟踪isLegalPicture方法:

在\application\user\controller\Common.php找到isLegalPicture方法后对他进行分析,对图片后缀名进行了判断,同时还对路劲进行判断,都通过则返回一个true

第二步:获取当前用户头像地址,用户头像地址已经存数据库里面了

第三步:获取当前域名

第四步:来到188行

当if里面的条件都成立以后就来到第120行这里是获取要删除图片的地址

第五步:来到122行判断$yfile变量是否为空,也就是判断要被删除的图片存在不存在

这行代码使用了substr —返回字符串的子串

如果给$yfile变量赋值的字符串的开始有/那么就执行substr($yfile,1),否则直接返回$yfile变量值

第六步:我们继续看

这里用到了str_replace—子字符串替换

范例:

吧Hello world!里面的world替换成Shanghai

这里是为了吧图片路径里面的‘/’替换成‘\’

最后来到124行获取图片路劲删除图片

利用:

首先我们正常上传一张头像图片,在保存图片的时候进行抓包

然后我们随便找一篇带图片的文章,复制图片地址:

吧刚才抓包得到的图片地址改成这个图片的地址,我们点击go一下,图片已经被删除成功

头像已经不见

在去看看文章的图片,文章的图片也不见了:

利用条件:

必须先正常上传一张头像点击保存后才能删除你想删除的其他图片

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180525G1UHPC00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券