加入收藏 | 设为首页 | 会员中心 | 我要投稿 常州站长网 (https://www.0519zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 动态 > 正文

超过十万个Zyxel设备被曝存在后门

发布时间:2021-01-31 10:50:37 所属栏目:动态 来源:互联网
导读:决定最终的漏洞利用策略 为了弄清楚如何在触发我们的堆内存覆盖之前对data_数组进行最佳定位,我们需要检查一下堆的状态。到目前为止,我们有两个感兴趣的目标:png_ptr结构体和运行时解析器正在使用的动态链接器数据。 如果我们检查png_ptr结构体数据所在的

决定最终的漏洞利用策略

为了弄清楚如何在触发我们的堆内存覆盖之前对data_数组进行最佳定位,我们需要检查一下堆的状态。到目前为止,我们有两个感兴趣的目标:png_ptr结构体和运行时解析器正在使用的动态链接器数据。

如果我们检查png_ptr结构体数据所在的堆分块,我们就会发现,它是一个大小为0x530的main arena分块。
 

通过Root Page No 4计算出Root Page的物理地址。根据Root Page中指定的段信息,向Root Page中插入索引数据,向数据段对应的页中插入数据行,并关联两种类型的页。

如果一页空间不足,会计算出当前页所在的区/簇并向其申请空间,区/簇则会根据 XDES Entry中的bitmap查询空闲的页并进行分配。如果区/簇也没有空闲空间,则会一级一级向上面的段、表空间、操作系统申请所需空间。

申请到的表空间会存储在各自对应的链表中(如:表空间申请到的空间会存储在对应的FSP_FREE链表中)。

在页分配或扩展时,为了保证通过innodb_indexes中的Root Page No能找到它,Root Page物理空间与B+树对应的Root 节点保持不变,即页号不变,永远是页号为4的那块空间。

当B+对应的物理页不断变化时,为了保证树的平衡,会产生新的Root节点,为了保持Root页不变,innodb是通过交换的方式,把新的Root节点数据复制交换到原来的Root Page页,这样就可以保证Root Page永远不变,即保证表与物理空间的关联永远不会断开。

总结

  • 表空间是数据库中的逻辑结构,它解耦了表、索引等与文件的关联。
  • 段也是一个逻辑结构,它让具有具体相同逻辑含义和相同存储结构的数据归为一组,方便管理。
  • 区是物理存储结构,对应大磁盘中真实的物理空间。它从文件第一个字节开始按相同大小划分,并通过XDES Entry在逻辑上把区串联起来。通过XDES Entry所在页以及页内偏量可以计算出XDES Entry与它管理的物理空间区的关系。
  • 页是物理存储IO操作的最小单元。它也是从文件第一个字节开始按相同大小划分。表是通过索引的方式组织数据,聚集索引元数据中存储了此表对就的Root page No。页是有编号的,通过编号就可与物理空间建立关联。

段、区都是为了管理空间的存储状态,为页分配空间服务,真正的查询只需要通过Page No和B+树中各级节点的关联关系就可以操作整个表物理空间上的数据。

行是最终存储业务数据的物理单元。默认一页16K,可以存储大概1000多行索引数据(非叶子节点),或者20行甚至更多的业务数据(叶子节点)。页之间通过B+树的“二分找查(假设为多分)”算法快速定位数据,页内则通过 Page Directory,把多行分一组,一组对应Page Directory有序数组中的一个slot,这样可以在页内进行一次“二分查找”优化。

为了记录行本身的状态,一条记录innodb会增加额外的记录头信息。如果是叶子节点,还会增加:row_id(隐藏的主键)、trx_id(事务id)、回滚指针等附加字段。

(编辑:常州站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读