ThinkPHP采用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式,是一款兼容性高、部署简单的轻量级国产PHP开发框架。

近日,ThinkPHP团队发布了版本更新信息,修复一个远程代码执行漏洞。该漏洞是由于框架对控制器名没有进行足够的检测,导致在没有开启强制路由的情况下可远程执行代码。攻击者利用该漏洞,可在未经授权的情况下,对目标网站进行远程命令执行攻击。

该漏洞存在于thinkphp\library\think\route\dispatch\Module.php文件中,核心代码如图所示:

网上公布的poc为:http://xx.xx.xx/public/index.php?s=/index/\think\request/cache&key=1|phpinfo,当变量s传进之后受explode函数截断,$controller的值为:\think\request,代码如图所示:

在Thinkphp5.1.29的\think\Request类中找到可以利用的方法cache,代码如图所示:

Poc中cache&key=1|phpinfo经过代码处理后函数$fun的值为phpinfo

本地搭建测试环境验证,尝试执行phpinfo命令,如下图所示:

解决方案如下 :

最新文章

  1. C++高精度计时器——微秒级时间统计
  2. Only Link: Inheritance and the prototype chain
  3. (OSP)外包工单关工单失败
  4. AndroidStudio权威教程 AS添加第三方库的6种方式(Jar module so等)
  5. [转]java工程师成神之路
  6. poj 2253 Frogger dijkstra算法实现
  7. Rule of write code with C# in Unity3d
  8. When to use Class.isInstance() & when to use instanceof operator?
  9. hibernate篇章四-- Hibernate配置文件中hiberante.hbm2ddl.auto四个参数的配置
  10. angularJs项目实战!01:模块划分和目录组织
  11. 2015.8.3 Java
  12. FPGA合成编码
  13. 机器学习:R语言中如何使用最小二乘法
  14. Jmeter选项含义
  15. Linux上不了网的几个排查点
  16. CentOS 6.5系统中安装配置MySQL数据库
  17. [EXP]Memu Play 6.0.7 - Privilege Escalation
  18. Oracle11g em启动报此网站的安全证书有问题的解决方案
  19. 【读书笔记】iOS-button只显示在一个界面的右下角,不管界面大小怎么变化(xib,没有使用自动布局)(一)
  20. nodejs项目文件搭建环境

热门文章

  1. opencv常见示例
  2. Java-WebSocket调用报错:WebSocketClient objects are not reuseable
  3. 第五章 编码/加密——《跟我学Shiro》
  4. iOS- Core Foundation对象与OC对象相对转换
  5. 机器学习算法K-NN的一个使用实例:预测一个人是否患有糖尿病 (KNN-Predict whether a person will have diabetes or not )
  6. 【C/C++开发】运算符重载二
  7. 最新 草花互动java校招面经(含整理过的面试题大全)
  8. ORACLE创建表空间和用户,并分配权限
  9. css实现可伸缩的搜索框
  10. linux shell `符号详解