ThinkPHP学习与漏洞分析
ThinkPHP的部署:
我们需要下载composer来部署高版本ThinkPHP,且ThinkPHP6开始只能使用composer来部署
composer下载地址:https://getcomposer.org/Composer-Setup.exe
安装:Composer 安装与使用 | 菜鸟教程 (runoob.com)
什么是ThinkPHP框架:
ThinkPHP,是为了简化企业级应用开发和敏捷WEB应用开发而诞生的开源轻量级PHP框架。ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。ThinkPHP可以支持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本支持,支持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,ThinkPHP框架本身没有什么特别模块要求,具体的应用系统运行环境要求视开发所涉及的模块。
ThinkPHP2.x/3.0 rce漏洞
在/ThinkPHP/Mode/Lite/Dispatcher.class.php
中preg_replace的**/e**匹配模式
1 |
|
用户的输入会放在双引号中执行,导致任意命令执行
在线沙箱测试:PHP Sandbox
关于preg_replace的一些性质参考:
深入研究preg_replace与代码执行 - 先知社区 (aliyun.com)
漏洞利用
1 |
|
1 |
|
ThinkPHP5 5.0.22/5.1.29 rce漏洞
环境使用vulhub的漏洞环境5-rce
漏洞复现
1 |
|
1 |
|
ThinkPHP5 5.0.23 rce漏洞
环境使用vulhub的漏洞环境 5.0.23-rce
漏洞复现
1 |
|
ThinkPHP 6.0.12 rce漏洞
环境使用vulhub的漏洞环境 lang-rce
漏洞复现
1 |
|
注意:必须用bp传参,不然<>会被url编码而失效
错误的
正确的