当前位置:首页>Linux>Linux Netfilter 匿名集合 UAF 漏洞 (CVE-2023-32233) 复现与利用分析

Linux Netfilter 匿名集合 UAF 漏洞 (CVE-2023-32233) 复现与利用分析

  • 2026-03-21 19:49:34
Linux Netfilter 匿名集合 UAF 漏洞 (CVE-2023-32233) 复现与利用分析

CVE-2023-32233 揭示了 Linux 内核 Netfilter (nf_tables) 子系统中一个关键的 Use-After-Free (UAF) 逻辑缺陷。该漏洞的核心在于内核在处理“匿名集合”(Anonymous Sets)的生命周期时存在设计疏忽。通过构造特定的批处理事务并利用内核处理大量数据时的延迟,攻击者可以在匿名集合仍被规则引用的情况下,诱导内核将其提前释放。利用这一不稳定的内存状态,攻击者可以实现稳定的堆喷射与类型混淆,进而绕过 KASLR 防护并劫持内核控制流。

背景知识介绍

匿名集合 (Anonymous Sets)

在 Linux Netfilter 的nf_tables框架中,集合(Set)用于存储数据以供规则高效匹配。匿名集合(带有NFT_SET_ANONYMOUS标志)通常作为规则中lookup等表达式的附属品自动生成。其生命周期理论上应与规则严格绑定:规则创建时增加引用计数,规则删除时减少引用。

漏洞原理分析

漏洞根源于nf_tables_deactivate_set函数在事务准备阶段(NFT_TRANS_PREPARE)仅递减了引用计数set->use,却未执行解绑(unbind)操作。

// net/netfilter/nf_tables_api.cvoidnf_tables_deactivate_set(..., enum nft_trans_phase phase) {switch (phase) {case NFT_TRANS_PREPARE:        set->use--; // 仅递减计数return;     // 逻辑缺陷:未进行 unbind 便直接返回// ...}

这导致一个计数已归零、逻辑上应销毁的对象依然残留在全局链表中。通过在同一个 Batch 事务中精心编排“删除规则 -> 显式删除集合”的操作序列,可以诱导内核对同一个物理对象执行两次销毁流程,从而将 UAF 演变为 Double Free。

漏洞利用过程详解

CVE-2023-32233 的复现是一场精密的对象生命周期操纵艺术。在深入细节之前,下图展示了整个利用逻辑的核心路径,包括对象释放与抢占的顺序。

我们通过exploit.c将这一艺术转化为稳定的提权原语。

1. 基础环境构建与精准堆排布

利用的第一步是在内核中构建一个受控的 Netfilter 环境并进行精密的堆内存布局。CVE-2023-32233 的核心矛盾在于:当一个匿名集合(Anonymous Set)被规则引用时,虽然其生命周期应与规则绑定,但攻击者可以通过特定的批处理序列,在规则被标记删除后、集合正式解绑前,利用逻辑缺陷显式地触发集合的删除流程。

为了实现这一目标,我们首先通过pwn_prepare函数建立 nftables 的逻辑框架。这包括创建一个独立的主表testfirewall,并在其中定义两个关键链:pwn_lookup_chain(OUTPUT) 用于存放最初引用受害者集合的规则,而pwn_log_chain(INPUT) 则预留给后续的堆喷射操作。这种分层隔离不仅条理清晰,更确保了漏洞触发过程不会干扰系统的正常网络功能,为后续的内存操作提供了一个稳定的“手术台”。

static void pwn_prepare(struct mnl_socket *nl) {pwn_create_table(batch, seq++); // 创建实验主表pwn_create_chain(batch, seq++, pwn_lookup_chain); // 承载受害者规则pwn_create_chain(batch, seq++, pwn_log_chain);    // 用于后续对象喷射}

在实际调试过程中,为了验证堆排布的效果并精确定位受害者集合s_a的内存地址,我们可以在内核源码的net/netfilter/nf_tables_api.c:6145处打入断点。这里的目的是为了观察elem.priv,它指向了我们目标集合对应的nft_rhash_elem内容。通过 GDB 的输出可以看到,此时处理的正是我们预设的目标集合 "s_a",这证实了基础环境构建的准确性。

紧随其后的是至关重要的堆整理(Heap Grooming)阶段。为了确保受害者对象落在可预测的内存位置并具备特定的溢出属性,我们执行pwn_uaf_spray函数。该函数通过循环喷射大量匿名集合来清理 SLUB 分配器的空闲列表(Freelist),迫使内核向伙伴系统申请全新的 Slab 页面。在这一喷射序列的中段,我们分配受害者集合s_a(即代码中的pwn_lookup_set)。此处的一个关键技巧是通过userdata将该对象的大小调整为 0x100 字节,使其精确落入kmalloc-256缓存池。

为了深入观察这个匿名集合在后续 Double Free 过程中的状态变化,我们需要利用硬件断点进行精细监控。通过命令p &set->ops获取ops指针格在内存中的绝对地址(例如0xffff888102bf74c0),随后设置硬件监视点:watch *0xffff888102bf74c0。这样做是因为在触发漏洞时,受害者内存块会被释放并可能被另一个“竞争集合”(Race Set)占领。监控ops成员的变化,能够让我们在复杂的事务提交流程中,精准地捕捉到对象被重新占用或二次释放的瞬间。

环境准备的最后一步是通过pwn_create_lookup_rule创建一条引用s_alookup规则。此时,受害者集合s_a的引用计数(use)变为 1,它在逻辑上已正式成为规则的一部分。这一步是整个利用链条的“挂钩”点:只有建立了这种引用关系,我们才能在后续的事务处理中,利用nf_tables_deactivate_set函数的逻辑缺陷,强行触发对该集合的非法释放,从而打开通往 Use-After-Free 的大门。

2. 操控时空:构造执行延迟 (Manipulating Time: The Delay Mechanism)

单纯的并发竞争往往难以跨越微秒级的内核指令间隙,因此我们需要一种机制来人为地“拉伸”内核的执行时间。在攻击准备阶段,我们通过pwn_delay_spray_set_elem函数向一个名为set_delay的辅助集合中预先填充了海量元素(数量高达0x300 * 0x800)。这个庞大的集合就像是一个蓄势待发的“时间锚”。

当我们在后续的攻击事务中请求删除这个集合时,内核被迫陷入漫长的内存释放循环中,必须逐个清理这些元素。这个精心构造的“停顿”操作,就像是插入齿轮中的一根撬棍,强行将内核的处理流程卡滞在特定的事务提交阶段。这产生了长达数十毫秒的执行延迟,为用户态的后续操作赢得了宝贵的“子弹时间”,使得原本稍纵即逝的竞争条件变得稳定可控,让我们有足够的时间从容地进行堆内存的抢占与布局。

3. 致命一击:触发 Double Free 与对象重叠 (Triggering Double Free & Object Overlap)

万事俱备,利用流程进入了最关键的阶段。在正式触发 Double Free 之前,通过 GDB 调试观察nft_rhash_elem的内容,可以进一步确认受害者集合s_a的内存排布。如下图所示,elem.priv准确指向了我们的目标匿名集合。

接下来的核心挑战在于如何在两次释放的微小间隙中完成内存抢占。我们的策略是:在s_a被第一次释放后,立即通过另一个事务创建一个“竞争集合”(Race Set)。这里有一个极其精妙的设计:我们将race_set的名称(name)构造为一个大小属于kmalloc-cg-256的字符串。

由于s_a刚刚被释放,内核分配器极大概率会将race_set->name分配到s_a原有的内存槽位上。通过在nf_tables_newset函数处设置断点,我们可以精准地捕捉到这个覆盖瞬间。

此时原本存放s_a结构体的空间已经被race_set的名称字符串所覆盖。为了进一步监控这块内存的变化,我们获取name的地址(例如0xffff888102af4f00)并设置硬件监视点:watch *0xffff888102af4f00

当利用程序继续执行add chain操作时,这个监视点会被断下,此时正好处于memcpy用户数据(udata)到内核空间的时刻。

执行finish结束memcpy后,观察内存状态可以清晰地看到原本的name字段已经被我们完全可控的chain->udata所填充。

至此,受害者集合race_setname指针已经变成了一个指向“幽灵内存”的悬垂指针,且该内存中的数据已被我们占位。

随后,漏洞逻辑触发了对s_a的第二次释放。由于之前的重叠,内核实际上释放的是race_set->name的内存。这就在kmalloc-cg-256缓存池中制造了一个空闲槽位。为了引入更具“价值”的对象——nft_rule,我们在这里执行了一个关键的步骤:主动释放race_set

通过调用pwn_uaf_del_set,内核会显式释放race_set->name。由于物理地址重叠,这实际上将chain->udata所在的内存块再次放回了空闲列表。

接下来的目标是让nft_rule对象占领这个空位。由于nft_rule及其表达式(如counter)同样使用该缓存池,我们可以通过喷射规则来触发占位。当内核执行到规则插入 RCU 链表的关键步骤时,新的规则对象已经精准地坐落在之前被释放的内存块上。

此时,利用进入了信息泄露阶段。通过NFT_MSG_GETCHAIN接口读取该链表的udata,原本存放用户数据的内存中,现在赫然出现了nft_counter_ops的指针。通过解析这些数据,我们能够成功提取出这个内核符号地址,从而计算出内核基址(kbase),实现 KASLR 的完美绕过。

下图展示了nft_rule及其内部nft_expr的具体布局,这也正是我们能够通过重叠内存读取到关键指针的原因。

4. 权力交接:劫持与提权 (Precision Hijack & Root Shell)

在成功获取内核基址与堆地址后,利用进入了最后的劫持阶段。这一阶段的核心在于通过再次的对象重叠,在内核中植入一个我们完全控制的“伪造对象”。

我们利用泄露的信息,在用户态构造了一个精密的 ROP 链。整个提权逻辑如下:

定位 Init 进程:通过find_task_by_vpid(1)获取 init 进程的task_struct地址。
逃逸命名空间:调用switch_task_namespaces(init_task, &init_nsproxy),将当前进程的命名空间切换回全局初始命名空间,从而绕过容器或沙箱限制。
获取 Root 权限:执行commit_creds(&init_cred),将当前进程的凭证替换为系统管理员权限。
维持稳定:最后调用vfork()并进入一段长时间的延迟,以确保提权后的环境能够稳定运行。

为了触发这个 ROP 链,我们利用pwn_uaf_spray_chain_fake_rule喷射一组精心构造的fake_nft_rule结构体。在这些伪造结构体中,我们篡改了操作钩子(Ops),将其指向一个关键的跳转 Gadget(如push rax ; pop rsp ; ret),而rax此时正好指向我们布置好的 ROP 链。

当一切准备就绪,我们只需发起一个 handle 为0xffff的删除规则请求。内核在遍历链表并尝试执行删除前的清理逻辑时,会毫无察觉地调用那个被篡改的指针。瞬间,内核栈被劫持到 ROP 链上,提权逻辑在内核态高速执行。随着win()函数在用户态被调用,一个具有 root 权限的 Shell 跃然屏上,宣告了这场内核生命周期操纵艺术的最终胜利。

补丁分析与总结

官方补丁通过在nf_tables_deactivate_set中增加状态检查,确保了集合在引用计数归零时被正确解绑,从而堵住了这一逻辑漏洞。CVE-2023-32233 的复现过程不仅展示了 Netfilter 子系统中复杂的对象生命周期管理风险,更生动地演绎了如何通过精密的堆风水(Heap Feng Shui)和时间操控(Time Dilation),将一个看似受限的 UAF 漏洞转化为稳定的内核提权利器。这无疑是内核漏洞利用艺术的一次精彩展示。

看雪ID:a2ure

https://bbs.kanxue.com/user-home-991890.htm

*本文为看雪论坛优秀文章,由 a2ure原创,转载请注明来自看雪社区

# 往期推荐

从ANGR-CTF项目入手ANGR和符号执行技术

AI时代-逆向工作者该如何用好这一利器

EXIF解析缓冲区溢出漏洞分析与利用

从C到Pwn:栈溢出漏洞利用实战入门

Android-ARM64的VMP分析和还原

球分享

球点赞

球在看

点击阅读原文查看更多

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-03-27 11:40:38 HTTP/2.0 GET : https://f.mffb.com.cn/a/480022.html
  2. 运行时间 : 0.088333s [ 吞吐率:11.32req/s ] 内存消耗:4,674.45kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=3f09f5cb5c2d1d668fc45e8324efb0c9
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000413s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000566s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000274s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000250s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000503s ]
  6. SELECT * FROM `set` [ RunTime:0.000204s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000478s ]
  8. SELECT * FROM `article` WHERE `id` = 480022 LIMIT 1 [ RunTime:0.000396s ]
  9. UPDATE `article` SET `lasttime` = 1774582838 WHERE `id` = 480022 [ RunTime:0.009434s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.001614s ]
  11. SELECT * FROM `article` WHERE `id` < 480022 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000590s ]
  12. SELECT * FROM `article` WHERE `id` > 480022 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000473s ]
  13. SELECT * FROM `article` WHERE `id` < 480022 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000909s ]
  14. SELECT * FROM `article` WHERE `id` < 480022 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001193s ]
  15. SELECT * FROM `article` WHERE `id` < 480022 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.005489s ]
0.089908s