前言:
ThinkPHP MVC框架越来被开发者接受,众多的开发者选择了这个框架,也有很多的优秀项目使用的ThinkPHP框架。最近整理了一下ThinkPHP项目的一些安全配置。可能并不适用全部项目,大家可以适当的使用如下的安全配置。
前置知识:
web容器和各类组件的版本,这里使用的LNMP 的架构:Nginx1.19 Mysql 5.6 PHP7.4 Centos8.2,这里推荐是PHP的版本7.4
一、ThinkPHP常见的被入侵方式

ThinkPHP RCE
案例分享:
在某些ThinkPhp版本中只有开启了Debug才会导致命令执行的出现,例如拿ThinkPhp5.1.14举例
获取网站的绝对路径等等敏感信息

开启了Debug,执行exp

2、通过log日志获取网站权限
智宇发卡网举例
此发卡网是可以访问runtime目录的,给大家看看目录

他入口文件和runtime目录在同一个目录里面,他也没设置其他东西,所以可以直接访问runtime目录
然后根据runtime目录的日志存储的格式runtime/log/年份月份/日.log来存储的,所以得到runtime/log/202007/22.log来获取网站日志,在遍历日志的时候在18号发现了管理员账号密码

通过后台登录账号密码,通过代码审计发现存在一个比较鸡肋的Rce
利用条件
可以开启日志,或者支持into outfile
GetShell
1
在审计的时候发现了数据库可以指定其他文件进行数据库恢复(恢复数据相当于执行SQL语句),下面是利用步骤
1.下载网站备份文件
2.修改SQL语句,添加漏洞利用代码
3.在文件存储处添加.sql的后缀,然后在上传文件的地方上传.sql文件
4.然后在恢复数据的时候指定这个.sql文件达到写shell的目的
备份数据库

本文介绍了ThinkPHP项目常见的安全问题,如RCE漏洞、日志泄露等,并提供了相应的防御措施,包括禁止访问log目录、限制入口文件、使用Nginx防火墙、防跨站设置、防篡改保护以及webshell防御。同时强调了关闭Debug模式、设置日志输出等其他重要安全设置,建议将服务器、数据库和网站密码独立,以增强安全性。
最低0.47元/天 解锁文章

1236

被折叠的 条评论
为什么被折叠?



