0×00 前言

ThinkPHP是为了简化企业级应用开发和敏捷WEB应用开发而诞生的,由于其简单易用,很多cms都基于该框架改写。然而 Thinkphp在缓存使用却存在缺陷,生成缓存时,Thinkphp会将数据序列化存进一个php文件,这就产生了很大的安全问题。

0×01 环境搭建

工具

phpstudy

http://www.phpstudy.net/phpstudy/phpStudy20161103.zip

Jymusic cms

http://www.jyuu.cn/topic/t/41

xyhcms

https://pan.baidu.com/s/1qYhTKc8

搭建

安装好phpstudy,把jymusic目录下的所有文件及文件夹拷贝到phpstudy的www目录下,浏览器访问http://localhost/install.php,然后配置一下数据库信息即可。

另外xyhcms安装类似,这里不赘述。

0×02本地后台getshell

Jymusic cms

先看一下管理员登录页面的源代码,看到核心入口为ThinkPHP.php,找到并打开查看

发现应用缓存目录为Temp文件夹

打开Temp文件夹会发现有很多缓存文件,我们随便打开即可看看,可以发现里面的内容有点像网站配置信息,只不过是序列化后的结果

所以我们在后台的网站设置处插入一句话,就会被ThinkPHP写入缓存文件。而且这个缓存文件的文件名都是固定不变的,这也是导致getshell的原因。

成功插入后,我们来执行一下phpinfo()函数看看,菜刀也能成功连接

xyhcms

xyhcms和Jymusic cms一样使用了ThinkPHP框架,这里不赘述,直接给出缓存文件的位置

xyhcms其实还有一个漏洞,在模板管理处可以添加一个php后缀的模板,文件内容也未做任何检测过滤。下面是成功getshell过程

0×03总结

其实现在很多小型网站都是基于ThinkPHP框架开发的,很多都存在这种问题。当你找不到上传点的时候,可以试试这种方法。当然,肯定有人会说,这个要后台登录才能利用,你只是在本地复现,都没实战过,说个锤子。其实,我还真的实战过,只是不方便贴图,使用弱口令做密码还是挺多的,所以锤子未必不可用。还有,有的网站,虽然说你用很简单的方法getshell,但是其实可以研究的东西还有很多,比如你getshell之后发现权限不够,那就可以试试提权,例如用udf提权、使用mysql远程连接结合sqlmap提权等等,虽然有些方法很早就有了,但是并不是每个人都会,而且一些老的思路还有可能启发你新的思考,继续加油吧!

转自:https://www.freebuf.com/articles/web/148629.html

ThinkPHP 3.2.3~5.0.10 缓存函数设计缺陷后台GetShell实战相关推荐

  1. C语言-第10章-函数

    文章目录 10.0 导入例子 10.1 函数基础 10.1.1 函数的定义.调用 10.1.2 定义和调用没有返回值的函数或者没有输入的函数 10.1.3 return语句 10.1.4 函数的嵌套调 ...

  2. 全面认识一下.NET 4.0的缓存功能

    很多关于.NET 4.0新特性的介绍,缓存功能的增强肯定是不会被忽略的一个重要亮点.在很多文档中都会介绍到在.NET 4.0中,缓存功能的增强主要是在扩展性方面做了改进,改变了原来只能利用内存进行缓存 ...

  3. kafka0.9 java commit_kafka0.9.0及0.10.0配置属性

    名称 说明 类型 默认值 有效值 重要性 zookeeper.connect zookeeper集群的地址, 可以是多个, 多个之间用逗号分割 string localhost: 2181 ip1 : ...

  4. CentOS7下安装Redis伪集群(基于Redis官方Cluster集群模式版本redis-5.0.10)

    文章目录 Redis简介 什么是redis redis的优点 Redis集群都有哪些模式 主从复制(Master-Slave Replication) 哨兵模式(Sentinel) Redis官方 C ...

  5. redis-4.0.10集群安装(3台机器,6个node),以及在Spring项目中的集成,redis操作工具类

    1 Redis安装 redis高可用的三种常见的集群方式:redis sentinel .redis cluster(多主机+分布式).redis sharding.接下来主要介绍redis sent ...

  6. 微信又双叒更新7.0.10,除了黑暗模式,还有这些实用功能!

    本文经授权转自差评公众号,如需转载请联系授权 本文经授权转自差评公众号,如需转载请联系授权  也不知道最近微信是怎么了,特别勤快... 可惜的是,虽然更新很勤快,但基本上都是在微调界面的层面,功能上一 ...

  7. Kafka: Producer (0.10.0.0)

    Producer API入门 ProducerRecord 说明 异步发送流程 2.1 用户线程调用send将record压缩到BufferPool中2.2 发送调度 Producer设计说明 Pro ...

  8. WSTMart多商户商城跟随thinkphp框架升级到5.0.3

    THINKPHP最近是喜闻不断,先是在大好中秋给PHP 开发者最好的礼物,推出了5.0正式版,然后在国庆前推出5.0.1版本,继而在程序员节发布5.0.2,双11又推出了新的版本5.0.3 ... . ...

  9. ThinkPHP 5.0常用助手函数

    ThinkPHP 5.0常用助手函数 总结thinkphp手册,以及自己学习中用到的关于tp5的助手函数 首先看看手册给我们提供的助手函数目录: 下面是学习中自己常用到的助手函数 一.url() 一般 ...

最新文章

  1. 为什么大家都做不好社交这件事?
  2. 测试另外一个厂商的T254 高频功率MOS管
  3. android游戏画面抖动,抖音游戏主播是怎么直播手机画面的?
  4. 七十三、SpringBoot整合Jpa
  5. 游戏中的卡片模态面板设计【1】—运用案例分析
  6. 带Quarkus的Qute模板
  7. 评估指标_机器学习评估方法与评估指标总结
  8. TCP、UDP(网络协议:传输层协议)
  9. 轻量应用服务器安装mysql_阿里云轻量应用服务器Linux-Centos7下MySQL8.0.19的安装
  10. com scripting读书笔记
  11. Python 异常处理
  12. Ubuntu小技巧13--grep命令详解
  13. 读书笔记:《世说新语》
  14. fat32源码c语言,FAT32文件系统基本原理与数据恢复编程
  15. GIF图像格式简介(87a和89a)(C语言生成GIF图像)
  16. 手把手教你运用JAVA爬虫技术爬取小说
  17. 程序员,你得选准买房的时间!
  18. ImportError: cannot import name '_path' from 'matplotlib'的原因分析,可能是因为你适合win32的whl,却下载安装了win64的whl
  19. ARCore:从哪里冒出来的ARCore
  20. DOS下串口通信程序来传送文件的源代码

热门文章

  1. “魄力”来源于“生活”,亦或是“勇气”?
  2. gs地图开发_地图编制小课堂 | 境界分类
  3. TPS54560设计降压模块需要注意事项
  4. 计算机软件实习项目三 —— 超级玛丽闯迷宫 (实验准备) 12-19(12-21更新)
  5. 【前端三剑客】HTML 超文本标记语言
  6. 什么是5G?关于5G你需要知道的知识
  7. ruby 程序员修炼之道_面向系统管理员的Ruby
  8. 行程单识别易语言代码
  9. 初步了解DPI技术以及开源工具nDPI------上
  10. 苏宁安全架构演进及实践