快排CMS1.2文件上传毛病

打印 上一主题 下一主题

主题 847|帖子 847|积分 2543

侵权声明
本文章中的所有内容(包罗但不限于笔墨、图像和其他媒体)仅供教育和参考目的。如果在本文章中使用了任何受版权保护的质料,我们满怀敬意地承认该内容的版权归原作者所有。
如果您是版权持有人,并且认为您的作品被侵犯,请通过以下方式与我们联系: [360619623@qq.com]。我们将在确认后的合理时间内采取适当措施,包罗删除相干内容。
感谢您的明白与支持
靶场安装地址:/index.php/install

毛病成因:

对文件后缀逻辑判定不当,当上传文件后缀为php时,该in_array($extension, ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf'])判定会返回false就不会继承实行后面的语句返回true。因该加一个取反。
  1. if (in_array($extension, ['gif', 'jpg', 'jpeg', 'bmp', 'png', 'swf']) && !in_array($this->getImageType($this->filename), [1, 2, 3, 4, 6, 13]))
复制代码
毛病的位置

毛病地址:
/admin.php/post/add/cid/5.html
/admin.php/config/index.html
/admin.php/banner/edit/id/1.html
毛病代码位置:
thinkphp/library/think/File.php的267行方法

分析:

下面是检查文件上传的主要验证代码,由于rule数组是空的没有被定义,以是只有红框处的函数起作用即检查文件后缀是否为图片的函数。可能在实际天生情况中rule会被定义完整。

跟进checkImg()函数即可以啊看到红框处就前一个是验证后缀

后一个判定跟进发现是判定常见类型图片的根本信息如:长宽,由于第一个判定的函数不存在以是是直接判定图片的根本信息了。由于第一个判定已经是false了并且两个判定的关系是与,以是该判定是不会实行的,不过该函数应该可以通过制作图片马进行绕过,我试了一下我现在制作的图片马绕不过去。(如有不对请指出)

发现有意思的如果你文件上传成功后网址不仅会返回文件保存地址还会去访问一次你上次的文件,可以用bp看到这现象


复现:

1、找文件上传位置,点击管理 -> 文章管理 -> 发布

2、一句话或其他利用文件

3、成功上传

4、成功访问


总结

代码逻辑问题,形成了毛病。

参考

https://blog.csdn.net/weixin_52635170/article/details/126950674
https://github.com/wgpsec/peiqi-wiki/blob/master/PeiQi_Wiki/CMS%E6%BC%8F%E6%B4%9E/%E5%BF%AB%E6%8E%92CMS/%E5%BF%AB%E6%8E%92CMS%20%E4%BB%BB%E6%84%8F%E6%96%87%E4%BB%B6%E4%B8%8A%E4%BC%A0%E6%BC%8F%E6%B4%9E.md
免责声明
本博客所提供的技能知识和信息仅旨在教育和分享网络安全最佳实践,促进网络安全意识的提升。作者严禁将这些技能和信息用于任何非法或不道德的目的。
使用本博客内容而导致的任何违法行为或后果,作者不承担任何法律责任。所有读者在使用本博客的信息时,应自行承担风险,并确保遵守当地法律法规。
我们鼓励所有读者合法地使用所提供的信息和技能,致力于维护安全和负责任的网络情况。
感谢您的明白与支持。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

tsx81428

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表