ce安全网绿色资源分享

教程资讯|常用软件|安卓下载|下载排行|最近更新

软件
软件
文章
当前位置:首页网络安全网络安全文章 → ThinkPHP3.x/5.x框架任意文件包含

ThinkPHP3.x/5.x框架任意文件包含

时间:2018-06-02 07:12:19人气:作者:本站作者我要评论

ThinkPHP是一个快速、兼容而且简单的轻量级国产PHP开发框架,诞生于2006年初,原名FCS,2007年元旦正式更名为ThinkPHP,遵循Apache2开源协议发布,从Struts结构移植过来并做了改进和完善,同时也借鉴了国外很多优秀的框架和模式,使用面向对象的开发结构和MVC模式,融合了Struts的思想和TagLib(标签库)、RoR的ORM映射和ActiveRecord模式。

漏洞简述

ThinkPHP在加载模版解析变量时存在变量覆盖的问题,且没有对 $cacheFile 进行相应的消毒处理,导致模板文件的路径可以被覆盖,从而导致任意文件包含漏洞的发生。

环境准备

下载thinkphp框架在 “thinkphp\library\think\Controller.php” 文件中写入如下代码:

ThinkPHP3.x/5.x框架任意文件包含

在 “application\index\view\index” 目录下建立一个 index.html 文件,不建立会出现 模板文件不存在 错误。

至于其他配置数据库连接文件以及thinkphp框架结构,可参考文章:代码审计 | ThinkPHP5.0.x框架SQL注⼊

漏洞分析

攻击者可以通过POST方式访问链接:

  1. http://www.cesafe.com/thinkphp/public/index.php/index/index/index

POST的数据为:cacheFile=../phpinfo.php ,这个 cacheFile 变量就是可以被攻击者覆盖的变量。

程序在一开始会调用 “thinkphp\library\think\Controller.php” 文件中的 assign 方法,并传入 POST 数组数据
assign 方法又调用了视图类中的 assign 方法, assign 方法在 “thinkphp\library\think\View.php” 文件中。可以看到该方法用 array_merge 方法将 POST 数组数据合并到 $this->data中
fetch 方法,该方法用于输出模板内容,代码定义在 “thinkphp\library\think\Controller.php”文件中,该方法同样调用的是视图类中的 fetch 方法
查看 “thinkphp\library\think\View.php” 文件中的 fetch 方法,这里注代码

  1. $this->engine->$method($template, $vars, $config);

在默认情况下 $method 的值为 fetch ,也就是说调用了视图引擎中的 fetch 方法,该方法在“thinkphp\library\think\view\driver\Think.php” 文件中

视图引擎的 fetch 方法又调用了模板类的fetch 方法,继续跟进 。我们注意到 “thinkphp\library\think\Template.php” 文件中语句:$this->storage->read($cacheFile, $this->data); 这是用于读取编译存储,此时 $cacheFile 的值类似于 runtime\temp\md5(×××).php

我们跟进该 read 方法,在“thinkphp\library\think\template\driver\File.php” 文件中,我们看到程序使用 extract 方法,并用了 EXTR_OVERWRITE 参数,该参数的作用是:如果有冲突,则覆盖已有的变量。

extract 方法将 $vars 数组中的数据元素注册成变量,而 $vars 数组又包含了 POST 数组数据,这也就是导致变量覆盖的原因。然后程序在最后包含了 $cacheFile 文件,最终导致了任意文件包含。

ThinkPHP3.x/5.x框架任意文件包含

相关文章

猜你喜欢

  • Ougishi绿色版下载 V4.00 中文版

    2020-06-19 / 561k

  • 谷歌地图下载助手睿智版破解下载 V9.5绿色版

    2020-06-19 / 32.7M

  • OfficeFIX中文破解版V6.110 注册版

    2020-06-19 / 26.8M

  • Plotagraph破解版V1.2.0 免费版 32/64位

    2020-06-19 / 31.5M

  • IP查详细地址工具下载 V1.1 官方免费版

    2020-06-19 / 408K

  • 内存扫把中文版下载V1.97绿色版

    2020-06-19 / 1.3M

网友评论

验证码:

请自觉遵守互联网相关政策法规,评论内容只代表网友观点,与本站立场无关!

最新评论

已有人参与,点击查看更多精彩评论

关于CE安全网 | 联系方式 | 发展历程 | 版权声明 | 下载帮助(?) | 广告联系 | 网站地图 | 友情链接

Copyright 2019-2029 cesafe.com 【CE安全网】 版权所有 蜀ICP备19039426号-2| 蜀ICP备19039426号-2

声明: 本站为非赢利性网站 不接受任何赞助和广告 所有软件和文章来自互联网 如有异议 请与本站联系 技术支持:ce安全网