当前位置:首页>Linux>Linux 用户空间中的纯内存代码(Shellcode)注入

Linux 用户空间中的纯内存代码(Shellcode)注入

  • 2026-06-28 11:39:54
Linux 用户空间中的纯内存代码(Shellcode)注入

典型的后渗透活动包括侦察、信息收集和权限提升。有时,攻击者可能需要额外的功能,例如当目标系统默认情况下不提供必要的工具,或者当需要加快这些后渗透操作的速度时。

大多数情况下,专业工具会被上传到目标系统并运行。这种方法最大的弊端在于,如果检测到残留在磁盘上的痕迹,可能会向防御者泄露额外信息,并有可能危及整个行动。

近年来,针对Windows操作系统如何在不触及磁盘的情况下进行代码注入,已有大量研究。*NIX 系统(尤其是 Linux)的情况则有所不同。

想象一下,你在一个闪烁的光标前,正在使用一台刚刚被攻破的Linux服务器上的shell,你想在不留下任何痕迹的情况下继续操作。您需要运行一些额外的工具,但您不想向机器上传任何内容。或者,你根本无法运行任何程序,因为挂载的分区设置了noexec选项。你还有哪些选择?

本文将展示如何绕过执行限制,仅使用系统上自带的工具在机器上运行代码。在“一切皆文件”的操作系统中,这具有挑战性,但只要跳出固有思维模式,充分利用系统提供的强大功能,就能实现。

对于进攻方而言,找到一种可靠且隐蔽的方式将有效载荷/工具送达目标机器始终是一个挑战。

最常见的方法是与托管所需工具的C2服务器或第三方服务器建立新的连接,并将工具下载到受害者的设备上。这可能会在网络基础设施上产生额外的痕迹(例如,网络流、代理日志等)。

在许多情况下,攻击者会忘记目标机器上已经存在一个开放的控制通道——shell 会话。该会话可用作数据链路,无需与外部系统建立新的 TCP 连接即可向受害者上传有效载荷。这种方法的缺点是,网络故障可能导致数据传输和控制通道同时丢失。

本文中,将两种传输方式分别称为带外传输和带内传输。后一种方式将作为传输(shellcode)工具的主要方式。

我们的演示和实验将使用以下环境:

  1. 受害机器运行的是最新版本的 Kali Linux 虚拟机

  2. 攻击者机器运行宿主机上的虚拟机 Arch Linux 系统

  3. 攻击者通过 SSH 连接到受害者,模拟 shell 访问

  4. 适用于 x86_64 架构的简单“Hello world” shellcode(参考附录 A)

不通过磁盘,只使用内存的方法

tmpfs

攻击者可以保存文件的一个位置是tmpfs。它会将所有内容放入内核内部缓存中,并根据其中包含的文件大小进行增长和收缩。此外,从 glibc 2.2 开始,tmpfs 会被挂载到 /dev/shm 以用于 POSIX 共享内存(使用 shm_open() 和 shm_unlink() 函数)。

以下是已挂载的 tmpfs 虚拟文件系统的示例视图(来自 Kali):

默认情况下,/dev/shm挂载时未设置noexec标志。如果管理员过于谨慎地启用了该标志,则会破坏这种方法——我们可以存储数据,但无法执行代码(execve() 会失败)。

我们稍后会再讨论 /dev/shm。

GDB

GNU Debugger 是 Linux 的默认调试工具。它通常不会安装在生产服务器上,但有时会在开发环境和一些嵌入式/专用系统中看到。

GDB的一个功能是可以在内存中运行shellcode,无需访问磁盘。

首先,我们将 shellcode 转换为字符串字节:

然后,在 gdb 的控制下运行/bin/bash,在 main() 函数处设置断点,注入 shellcode 并继续执行。以下是一个单行脚本示例:

python

Python是一种非常流行的解释型编程语言,与 GDB 不同,它常见于许多默认的 Linux 部署中。

它的功能可以通过许多模块进行扩展,包括ctypes,该模块提供与 C 语言兼容的数据类型,并允许调用 DLL 或共享库中的函数。换句话说,ctypes能够构建类似 C 语言的脚本,结合了外部库的强大功能和对内核系统调用的直接访问。

为了使用 Python 在内存中运行我们的shellcode,我们的脚本必须:

  1. 将 libc 库加载到 Python 进程中

  2. 使用mmap() 为 shellcode 创建一个新的 W+X 内存区域

  3. 将 shellcode 复制到新分配的缓冲区中

  4. 使缓冲区“可调用”(类型转换)

  5. 调用缓冲区

以下是完整的脚本(Python 2):

将整个脚本转换成 Base64 编码的字符串:

并用一行命令将代码发送到目标机器:

使用dd进行自修改

在极少数情况下,如果上述方法均不可行,许多 Linux 系统默认安装的另一个工具(属于 coreutils 软件包)或许可以派上用场。该工具名为dd,通常用于文件转换和复制。如果我们将其与procfs文件系统和/proc/self/mem特殊文件(用于暴露进程自身的内存)结合使用,或许就能找到一个短暂的窗口期,使 shellcode 直接在内存中运行。为此,我们需要强制 dd 动态修改自身内存。

默认的 dd 运行时行为如下所示:

自我修改的 dd 运行时环境的样子:

首先需要在dd进程内部找到一个地方来存放shellcode。整个过程必须在每次运行中保持稳定可靠,因为它是一个不断覆盖自身内存的进程。

一个候选位置是复制/覆盖成功后执行的代码。Shellcode注入可以在PLT(过程链接表)中完成,也可以在主代码段中的 exit() 调用处完成,或者在 exit() 调用之前完成。

覆盖 PLT 非常不稳定,因为如果我们的 shellcode 太长,它可能会覆盖在调用 exit() 之前使用的一些关键部分。

经过一番调查,发现 fclose() 函数是在 exit() 之前调用的:

fclose()函数仅在以下两个地方被调用:

进一步的测试表明,0x9c2b处的代码(jmp 1cb0)是运行时使用的代码,后面是一大段代码,这些代码被覆盖后可能不会导致进程崩溃。

要使这项技术奏效,我们还需要解决两个障碍:

  1. 复制完成后,dd 命令会关闭 stdin、stdout 和 stderr 文件描述符:

  2. 地址空间布局随机化(ASLR)

第一个问题可以通过借助 bash 创建重复的 stdin 和 stdout 文件描述符来解决(参考bash(1)):

Duplicating File Descriptors       The redirection operator              [n]<&word       is used to duplicate input file descriptors. If word expands to one or       more digits, the file descriptor denoted by n is made to be a copy of       that file descriptor.

并在我们的 shellcode 前加上 dup() 系统调用:

第二个问题更为复杂。如今,在一些 Linux 发行版中,二进制文件被编译成 PIE(位置无关可执行文件)对象:

并且ASLR默认开启:

幸运的是,Linux为每个进程支持不同的执行域(也称为“个性”)。执行域的作用之一是告诉 Linux 如何将信号编号映射到信号动作。执行域系统使得 Linux 能够为在其他类 UNIX 操作系统下编译的二进制文件提供有限的支持。自 Linux 2.6.12 起,可以使用 `ADDR_NO_RANDOMIZE` 标志来禁用运行进程中的地址空间布局随机化(ASLR)。

要在运行时关闭用户空间中的ASLR,可以使用 setarch 工具设置不同的个性化标志:

现在所有必要的组件都已就绪,可以运行自修改的 dd 命令了:

系统调用

以上方法都有一个缺点(tmpfs除外)——它们允许执行shellcode,但不能执行可执行对象(ELF文件)。纯汇编shellcode的使用范围有限,而且如果需要更复杂的功能,则无法扩展。

从Linux 3.17开始,引入了一个名为memfd_create()的新系统调用。它创建一个匿名文件并返回指向该文件的文件描述符。该文件的行为与普通文件相同。但是,它只驻留在内存中,当所有对它的引用都被删除时,它会自动释放。换句话说,Linux 内核提供了一种创建只存于内存中文件的方法,该文件看起来和感觉起来都像一个普通文件,并且可以进行mmap()/execve()操作。

以下步骤在虚拟内存中创建一个基于 memfd 的文件,并最终将我们选择的工具上传到受害机器,而无需将其存储在磁盘上:

  1. 生成一个shellcode,该 shellcode 将在内存中创建一个 memfd 文件

  2. 将 shellcode 注入到 dd 进程中(参考“自修改dd”部分)

  3. 挂起dd进程(这也是shellcode的功能)

  4. 准备需要上传的工具(以静态链接的 uname 为例)

  5. 通过带内数据链路(在 shell 会话中)将 base64 编码的工具直接传输到受害机器的 memfd 文件中

  6. 最后,运行该工具

首先,我们需要创建一个新的shellcode(参考附录 B)。这个新的 shellcode 会重新打开已关闭的 stdin 和 stdout 文件描述符,调用 memfd_create() 创建一个名为 AAAA 的内存专用文件,并调用 pause() 系统调用来挂起调用进程(dd)。挂起进程是必要的,因为我们需要阻止dd进程退出,让它的 memfd 文件对其他进程(通过procfs)开放。shellcode中的 exit() 系统调用不应该被执行到。

然后我们对 dd 进程进行自修改,暂停该进程,并检查 memfd 文件是否在内存中暴露出来:

下一步是准备上传我们的工具。请注意,攻击者的工具必须采用静态链接,或者使用与目标机器上相同的动态库。

现在只需将 Base64 编码的工具echo到 memfd 文件中并运行它:

请注意,memfd文件可以重用;如果需要,同一个文件描述符可以存储下一个工具(覆盖前一个工具):

如果受害机器运行的内核版本低于 3.17 怎么办?

C语言库中有一个名为 shm_open(3) 的函数。它会在内存中创建一个新的 POSIX 共享对象。POSIX共享内存对象实际上是一个句柄,不相关的进程可以使用该句柄通过 mmap() 函数访问同一块共享内存区域。

让我们来看看 Glibc 的源代码。shm_open()会调用 open() 函数来打开某个shm_name(glibc/sysdeps/posix/shm_open.c):

而 shm_dir 又会动态分配内存(glibc/sysdeps/posix/shm-directory.h):

shm_dir 是 _PATH_DEV 与 "shm/" 的连接(glibc/sysdeps/posix/shm_open.c):

而_PATH_DEV被定义为/dev/。

所以,事实证明 shm_open() 只是在 tmpfs 文件系统上创建/打开一个文件,但这已经在 tmpfs 部分中介绍过了。

总结

对目标机器进行任何攻击性活动都必须考虑其副作用。即使我们尽量避免用任何代码触及磁盘,我们的行为仍然可能留下一些痕迹。其中包括(但不限于):

  1. 日志(即 shell 历史记录)。在这种情况下,攻击者必须确保日志被删除或覆盖(有时由于权限不足而无法做到)

  2. 进程列表—有时用户查看受害机器上运行的进程时,可能会发现一些奇怪的进程名称(例如 /proc/< num >/fd/3)。可以通过更改目标进程中的 argv[0] 字符串来规避此问题

  3. 交换空间—即使我们的数据驻留在虚拟内存中,在大多数情况下它们也可以被交换到磁盘(交换空间的分析是另一个话题)。可以通过以下方式避免这种情况:

    3.1 使用mlock()、mlockall()、mmap() 函数,需要 root 权限或至少具备 CAP_IPC_LOCK 权限

    3.2 修改sysctl vm.swappiness 或 /proc/sys/vm/swappiness – 需要 root 权限

    3.3 cgroups(memory.swappiness)—需要 root 权限才能修改 cgroup

cgroups并不能保证在高负载情况下内存管理器不会将进程交换到磁盘(例如,root cgroup允许交换并且需要内存)。

附录A

实验中使用的“Hello world”示例shellcode:

附录B

Memfd-create() shellcode:

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-07-03 13:47:53 HTTP/2.0 GET : https://f.mffb.com.cn/a/496621.html
  2. 运行时间 : 0.321849s [ 吞吐率:3.11req/s ] 内存消耗:4,754.30kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=15a948b61d468aec31859d8333edbd6c
  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.000423s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000711s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000279s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000280s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000517s ]
  6. SELECT * FROM `set` [ RunTime:0.000208s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000549s ]
  8. SELECT * FROM `article` WHERE `id` = 496621 LIMIT 1 [ RunTime:0.000714s ]
  9. UPDATE `article` SET `lasttime` = 1783057673 WHERE `id` = 496621 [ RunTime:0.014599s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 67 LIMIT 1 [ RunTime:0.003464s ]
  11. SELECT * FROM `article` WHERE `id` < 496621 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.001617s ]
  12. SELECT * FROM `article` WHERE `id` > 496621 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.006798s ]
  13. SELECT * FROM `article` WHERE `id` < 496621 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.121614s ]
  14. SELECT * FROM `article` WHERE `id` < 496621 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.069353s ]
  15. SELECT * FROM `article` WHERE `id` < 496621 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.035222s ]
0.323367s