靶场科普 | ThinkPHP5代码执行

发表时间:2022-03-17 17:00

本文由“东塔网络安全学院”总结归纳


靶场介绍:

ThinkPHP5代码执行

今天,给大家介绍一下“东塔攻防世界”其中的一个靶场:“ThinkPHP5代码执行”。

一、实验介绍

1.基本概念

ThinkPHP5.0版本是一个颠覆和重构版本,采用全新的架构思想,引入了更多的PHP新特性,优化了核心,减少了依赖,实现了真正的惰性加载,支持composer,并针对API开发做了大量的优化,包括路由、日志、异常、模型、数据库、模板引擎和验证等模块都已经重构,不适合原有3.2项目的升级,请慎重考虑商业项目升级,但绝对是新项目的首选(无论是WEB还是API开发)。

2.特点

1)规范:遵循PSR-2、PSR-4规范,Composer及单元测试支持;
2)严谨:异常严谨的错误检测和安全机制,详细的日志信息,为你的开发保驾护航;
3)灵活:减少核心依赖,扩展更灵活、方便,支持命令行指令扩展;
4)API友好:出色的性能和REST支持、远程调试,更好的支持API开发;
5)高效:惰性加载,及路由、配置和自动加载的缓存机制;
6)ORM:重构的数据库、模型及关联,MongoDb支持。


二、实验目的

1.了解ThinkPHP5的基本概念

2.了解ThinkPHP5代码执行的实验原理

3.掌握ThinkPHP5的防御方式

三、实验步骤

1.启动靶场,查看实验环境;

2.利用system函数远程命令执行,通过phpinfo函数查看phpinfo()的信息;

3.写入shell,查看是否成功的写入shell;

4.使用菜刀连接。

四、防御方式

1.升级到5.0.24版本

2.参照官方在Github上的更新修改library/think/Request.php文件并关闭调试模式。详见:
https://github.com/topthink/framework/commit/4a4b5e64fa4c46f851b4004005bff5f3196de003

3.升级山石网科IPS规则库到2.1.271及其之后的版本,WAF规则库到1.1.54及其之后的版本,并开启相应的规则,可有效防御该漏洞攻击。