TextpatternCMS后台未过滤直接上传php导致getshell

该漏洞CNVD-ID: CNVD-2019-12539
漏洞提交CNVD后,待CNVD公示才发出本文。
测试环境:windows7 + firefox + Burpsuite + apache2 +php5.6.27 + mysql5.5.53
产品官网:https://textpattern.com/
github: https://github.com/textpattern/textpattern
系统安装环境要求:https://textpattern.com/about/119/system-requirements

一、漏洞分析

上传文件是由/textpattern/include/txp_file.php文件中的function file_insert()函数处理。
整个函数中,没有对文件扩展名进行验证。
上传后没有更改文件名,使用默认的文件路径。
在这里插入图片描述在这里插入图片描述文件目录没有做有效的访问控制,如用 .htaccess控制不能直接访问。导致可以通过路径直接访问上传的php文件。
在这里插入图片描述

二、漏洞测试

POC:
登陆后台后,来到文件页面/textpattern/index.php?event=file
能成功上传php文件。
Php文件中的内容:<?php phpinfo(); ?>
在这里插入图片描述然后打开上传文件路径/files/test.php
在这里插入图片描述

后台文件上传中的 GETshell 漏洞通常发生在服务器处理文件上传请求时,如果正确验证上传文件类型、大小或内容,恶意用户可能会上传包含恶意脚本的文件,这些脚本可以在服务器上执行,从而获取系统的控制权(shell)。 解决这类漏洞的方法包括: 1. **验证上传内容**:确保上传文件类型限制在预期范围内,比如只允许上传图片、文档等特定类型的文件,而不是可执行文件或包含脚本的文件。 2. **文件名和路径限制**:对上传的文件名进行转义和过滤,避免使用特殊字符造成目录遍历或恶意路径执行。同时,上传文件应存储在安全的、不可执行的文件夹中。 3. **二进制模式检查**:使用二进制模式打开上传文件,而不是文本模式,防止脚本注入。 4. **文件扩展名验证**:即使文件名被修改,也要检查上传文件的实际类型,不依赖于文件名。 5. **文件内容检查**:使用安全的文件内容检测工具,扫描文件的内容以查找可能的恶意代码。 6. **启用安全配置**:启用服务器的文件权限管理,确保上传的文件只能被拥有者或授权用户访问,而不能执行。 7. **使用预定义上传目录**:避免使用相对或绝对路径,而是使用预定义的上传目录,减少潜在的路径遍历攻击。 8. **启用HTTP头限制**:设置合适的Content-Type限制,防止恶意构造的请求头引发漏洞。 9. **更新和补丁管理**:定期更新服务器软件和框架,修复已知的安全漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值