DolphinPHP ≤ 1.4.3文件上传漏洞分析

漏洞编号

漏洞概述

  • DolphinPHP(海豚PHP)是一个基于ThinkPHP5.1.39LTS开发的一套开源PHP
  • 在DolphinPHP ≤ 1.4.3版本中,jcrop函数都没有对上传的文件进行后缀和文件类型校验导致可以上传任意文件。

影响范围

  • DolphinPHP ≤ 1.4.3

环境搭建

代码审计

  • application/admin/controller/Attachment.phpjcrop函数
    在这里插入图片描述
    函数中没有作任何过滤处理就上传文件

构造POC

  • 在程序后台有一个上传图片的地方,利用BP抓包查看请求URL的结构
    在这里插入图片描述

  • 过掉第一个包
    在这里插入图片描述

  • 第二个包就是上传图片的请求包
    在这里插入图片描述
    /admin.php/admin/attachment/upload/dir/images/module/admin.html,分析URL,初步估计其结构为:/admin.php/admin/控制器/函数/参数名/参数值/参数名/参数值...

  • 通过分析可知,上面的请求使用了update函数,而想要使用jcrop函数,必须让参数$from='jcrop',即需要往请求url上加一个/from/jcrop
    在这里插入图片描述

  • 在原有的请求包中作修改,请求url:/admin.php/admin/attachment/upload/dir/images/module/admin.html,同时把请求包中的文件名改成PHP后缀,文件内容改为PHPINFO
    在这里插入图片描述
    在这里插入图片描述
    成功返回上传路径

  • 访问上传路径,成功
    在这里插入图片描述

使用条件

  • Attachment类中没有initialize函数,所以这里的函数并不存在调用条件
  • Attachment继承Admin类,而Admin类中存在initialize函数,并且函数中有校验用户是否登陆
    在这里插入图片描述
    在这里插入图片描述
  • 进入isLogin()函数中
    在这里插入图片描述
  • 继续跟踪is_signin()函数,函数校验了Cookie,基本不存在绕过
    在这里插入图片描述
  • 实际删除cookie后,会304跳转,证实需要在登陆的情况下可以利用该漏洞
    在这里插入图片描述

参考

UEDitor是一个用于网页富文本编辑的开源插件,而UEDitor 1.4.3是其中的一个版本。在该版本中,存在一个PHP文件上传漏洞。 该漏洞的原因是因为UEDitor 1.4.3的服务端PHP代码中未对上传的文件类型进行严格的检查和过滤,导致攻击者可以上传恶意的PHP文件。这可能会造成恶意代码的执行,进而导致服务器被入侵、文件被篡改,甚至可能泄漏敏感信息。 攻击者可以通过该漏洞利用一些常见的文件上传攻击技术,比如修改文件后缀、伪造文件类型等,来绕过文件上传的限制,从而上传恶意的PHP文件。一旦上传成功并且被执行,攻击者就可以获取对服务器的控制权,进行各种恶意活动。 为了防范该漏洞,可以采取以下措施: 1. 更新UEDitor版本:将UEDitor升级到最新版本,新版本通常修复了已知的漏洞。 2. 限制文件类型:在服务器端对上传的文件类型进行严格的检查和过滤,只允许上传安全的文件类型,并禁止上传可执行的文件类型,如PHP、ASP等。 3. 文件上传路径限制:限制上传文件的路径范围,不允许上传到服务器的敏感目录,例如系统文件目录、核心文件目录等。 4. 文件大小限制:限制上传文件的大小,防止攻击者上传过大的文件导致服务器负载过高。 5. 增加安全验证:在上传文件的过程中,对上传文件进行安全验证,比如通过文件头部信息进行判断,确保上传文件的合法性。 总之,针对UEDitor 1.4.3PHP漏洞,我们应该及时更新版本,并在服务器端做好文件上传安全检查和过滤,以加强系统的安全性。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值