前言:
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的目的
备份数据库