php项目私有化部署保护代码,ThinkPHP项目安全配置解决方案

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

前言:

ThinkPHP MVC框架越来被开发者接受,众多的开发者选择了这个框架,也有很多的优秀项目使用的ThinkPHP框架。最近整理了一下ThinkPHP项目的一些安全配置。可能并不适用全部项目,大家可以适当的使用如下的安全配置。

前置知识:

web容器和各类组件的版本,这里使用的LNMP 的架构:Nginx1.19 Mysql 5.6 PHP7.4 Centos8.2,这里推荐是PHP的版本7.4

一、ThinkPHP常见的被入侵方式

136be34314a57ba454d97dfa8ef5d707.png

ThinkPHP RCE

案例分享:

在某些ThinkPhp版本中只有开启了Debug才会导致命令执行的出现,例如拿ThinkPhp5.1.14举例

获取网站的绝对路径等等敏感信息

136be34314a57ba454d97dfa8ef5d707.png

开启了Debug,执行exp

136be34314a57ba454d97dfa8ef5d707.png

2、通过log日志获取网站权限

智宇发卡网举例

此发卡网是可以访问runtime目录的,给大家看看目录

136be34314a57ba454d97dfa8ef5d707.png

他入口文件和runtime目录在同一个目录里面,他也没设置其他东西,所以可以直接访问runtime目录

然后根据runtime目录的日志存储的格式runtime/log/年份月份/日.log来存储的,所以得到runtime/log/202007/22.log来获取网站日志,在遍历日志的时候在18号发现了管理员账号密码

136be34314a57ba454d97dfa8ef5d707.png

通过后台登录账号密码,通过代码审计发现存在一个比较鸡肋的Rce

利用条件

可以开启日志,或者支持into outfile

GetShell

1

在审计的时候发现了数据库可以指定其他文件进行数据库恢复(恢复数据相当于执行SQL语句),下面是利用步骤

1.下载网站备份文件

2.修改SQL语句,添加漏洞利用代码

3.在文件存储处添加.sql的后缀,然后在上传文件的地方上传.sql文件

4.然后在恢复数据的时候指定这个.sql文件达到写shell的目的

备份数据库

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值