乐于分享
好东西不私藏

当攻击者盯上你的苹果电脑:Jamf管理平台的安全隐患与利用

当攻击者盯上你的苹果电脑:Jamf管理平台的安全隐患与利用
这篇文章整理自一场网络安全会议的演讲,主要内容是关于如何发现并利用macOS设备管理平台Jamf Pro的安全弱点。两位研究员分享了他们作为“红队”在渗透测试中,如何通过泄露的凭证操控Jamf,从而提升权限、执行代码,甚至横向移动控制大量苹果设备。他们同时发布了两款开源工具,帮助企业和安全人员发现自身风险,并给出了实用的防御建议。

从一次真实的入侵开始

大概在去年九月或十月,一次安全评估中,我们发现了一个被入侵的macOS用户账号。查看他的命令行历史记录时,我们注意到他开始用curl命令和Jamf的API交互。很好,历史记录里发现了凭证。

我们当时就想,用这些凭证能搞出什么名堂?答案是有很多。就凭最初的访问权限和这些凭证,我们就能横向移动,渗透他们所有的苹果设备,还能绕过那些主流的企业安全软件(EDR)。那次评估有六七周,我们一直这么干,没被发现。

后来,我们又把这个方法用在了其他客户身上。我们开始在各种地方找Jamf的凭证,比如Git的提交记录、云存储(像S3桶),凡是开发者可能不小心留下痕迹的地方都找。这招一直好使。我们曾经在客户跑着知名EDR的苹果设备环境里,潜伏了好几个月。

Jamf Pro:苹果设备的大管家

当我们聊Jamf的时候,通常指的是Jamf Pro,这是企业里管理苹果电脑和手机最主要的东西。它负责新设备注册、权限设置、分组管理等等所有杂事。

理解Jamf Pro的权限模型很关键。简单说,就是你能对JSS对象(比如设备、用户、配置策略)做什么。最基本的权限是CRUD:创建、读取、更新、删除。另外还有些功能性的权限,比如能不能清空日志,或者重置本地用户密码。这些权限通过标准的HTTPS API(GET、POST、PUT这些方法)来操作,数据通常是JSON或XML格式。

我们的流程通常是:先拿到凭证(从各种渠道),然后用这些凭证和Jamf的API交互,看看能干什么。接着就是提升权限,侦察环境,找那些有价值的目标设备,最后实现横向移动和代码执行。

攻击路径:如何从一点渗透到一片

管理员眼里看到的网络结构可能很简单,就像一张干净的图。但我们通常发现实际情况要乱得多,可能增加了新的组、测试用的API客户端,引入了新的规则和关联——图就变得复杂了。

我们特别喜欢的一条攻击路径是:一旦我们控制了某个组或者一个API客户端,我们就能去枚举,看看还有哪些有特权的人登录了哪些苹果电脑。如果我们匹配上了邮箱,可能就顺藤摸瓜找到了一个全局管理员。这样,任何能在那些设备上执行代码的人,都可能拿到Jamf的管理权限。

利用Jamf,好处坏处都有什么?

从攻击者角度看,用Jamf来搞事情有几个明显的“好处”。

  1. 能混在正常管理流量里。Jamf本身就要经常运行脚本、拉策略,这些行为在EDR看来很“吵”。我们模仿这些操作,正好隐藏自己。
  2. 有些公司用Jamf部署自家软件,会配置自签名。如果我们控制了权限,就能让我们的恶意软件也获得同样的代码签名,看起来就像合法软件。
  3. 最关键的一点,很多公司根本不监控他们的Jamf租户。没人盯着看谁改了啥、加了啥新策略。就像我们同事说 的,“任何事在被发现之前都是隐形的”。

那“坏处”呢?就是一旦防御方意识到问题并开始调查,他们就能利用日志和痕迹,一步步回溯,画出攻击路径,找到我们是怎么开始的。

介绍两个刚刚发布的工具

所以,我们这次演讲也发布了两款工具,都是开源的。

第一个叫EVE,是个Python工具。它能让你用泄露的凭证、令牌去连接一个被攻破的Jamf服务器(不管在本地还是云端),然后发起我们今天讨论的各种攻击。

第二个叫Jamf Hound,更偏向审计。它能帮你收集Jamf租户里的数据,生成JSON文件,然后可以导入BloodHound这类工具。这样你就能清晰地看到,如果某个账户被黑,攻击者在你企业内部能拿到哪些权限,攻击路径是啥样的。

权限提升:从普通用户变管理员

我们很少一开始就在理想的环境里。所以总得想办法在Jamf租户里弄到更多权限。通常有两种主要方法。

方法一:折腾用户账户

如果你有权限去“创建账户”或者“更新账户”,那就好办了。“创建账户”顾名思义,可以造出新的本地Jamf账户,还能给它分配权限。“更新账户”这个权限,可以用来重置其他本地Jamf账户的密码,然后你就能用那个账户了。或者,如果你已经入侵了一个账户,可以直接更新这个账户的权限,给自己加料。

这些权限通常是全局的,不用担心被限定在某个站点。

我们经常看到,有些第三方应用集成就用了具备这些权限的Jamf账户。在Jamf界面里,“创建账户”和“更新账户”这两项基本上是绑定的,开了就都有。

方法二:折腾API客户端和角色

如果动不了用户账户,可以看看API集成。这稍微复杂点,需要“创建/更新API客户端”和“创建/更新API角色”的权限。角色就是一堆权限的集合,你可以给这个角色对象分配任意权限,然后创建一个API客户端来认领这个角色。

我们再用EVE演示一下。假设我们有一个账户有创建API集成和创建API角色的权限,我们先创建一个只赋予“创建/更新/读取账户”权限的新账户角色。然后再创建一个新的API客户端,让它关联上这个角色。接着,用它去Jamf租户登录取回客户端凭据,放进EVE里,就能拿到一个新的Bearer令牌,用这个客户端身份做事了,而且有我们设定的那些账户权限。这样一来,我们又能搞权限提升了。

侦查与代码执行:拿到权限后干啥

现在我们是Jamf管理员了,能干吗?在我们红队任务里,总想横向移动到特定目标主机。

Jamf对侦查也很有用。每个被管理的设备在Jamf里都有个“计算机对象”,里面存了好多有用信息:终端用户的真实姓名、电话、职位、装了啥软件、有啥安全软件……这些都能帮你了解目标,知道该怎么下手,也明白对方装了啥防御软件。

要执行这些侦查,你需要有读取这些计算机对象的权限。

在设备上运行代码的几种套路

现在讲怎么执行代码。Jamf有好几种方法能让代码在远程设备上跑起来。

套路一:脚本+策略

这是最常见的,也是真实Jamf管理员常推荐的。流程分两步:先在Jamf数据库里创建一个脚本对象,然后再创建一个策略去执行这个脚本。

脚本就是个解释型脚本,比如shell脚本。默认会以root权限运行,但Jamf很聪明地把登录用户名作为参数传进去,方便你模拟特定用户执行命令。

策略里需要设置触发时机(我们一般设为“下次检查策略时”,大概是15-20分钟后),填上脚本的ID,最后限定这个策略在哪些计算机上生效。

需要的权限是:创建或更新脚本,以及创建或更新策略。注意“更新”权限——很多时候,环境里已经有现成的脚本和策略了,你直接在已有的脚本后面加一段恶意代码就行,保留原有功能,偷偷干自己的事。

这是EVE工具的界面演示。登录后,可以浏览Jamf数据库、查看现有脚本、创建策略。我们可以用搜索栏按用户名定位目标设备,按脚本名选择脚本,然后创建策略。等设备拉取策略后,代码就执行了。

套路二:直接在策略里运行命令

这个和上面很像,但不用创建单独的脚本对象。策略里直接有个“运行命令”的标签,你把单行命令放进去就行。这样你就不需要脚本权限,只需要策略权限。

演示和前面类似,只是用了一个内置的“执行命令”模板,直接把单行命令放进去。EVE也能当数据库查看器,你可以看到任何对象的XML源码,甚至编辑它。

套路三:计算机扩展属性

这个功能比较隐蔽,知道的人不多。它是为了让管理员能收集Jamf默认不收集的信息。做法是创建一个扩展属性,里面包含一个脚本。当设备执行“Jamf Recon”命令(默认大约24小时一次)时,这个脚本就会在所有指定的设备上运行。

用这个的好处是,一旦创建,代码会在整个企业范围内运行。缺点是你没法在策略层面筛选目标,筛选逻辑得写在自己的脚本里。注意脚本里的XML字符需要转义。

需要的权限是:创建或更新扩展属性。

在EVE里,进入扩展属性页面,选用我们准备好的模板,改个名字,把脚本逻辑放进去,就能创建一个新的扩展属性。创建完后,等设备执行recon命令(或者你手动触发),脚本就会跑起来。

演讲里开玩笑说,如果你放个挖矿脚本,就能快速增加你的门罗币余额了。

防御建议:别让攻击者这么容易得手

最后讲点防御的东西。建议会有点不同,取决于你用Jamf Cloud(云端版)还是本地部署。

  • 审计访问:
    看看JSS访问日志和Tomcat访问日志,谁在调API一清二楚。
  • 追踪变更:
    关注“变更管理”日志。缺点是这些日志是文本,不好处理,而且只记录了对象的状态,没记录具体改了啥,得做对比才知道。
  • 预防措施:
    对于有特权的API凭证,设个短的有效期。在我们所有的红队测试里,发现这些凭证总出现在不该出现的地方,比如shell历史或云存储。如果凭证有时效性,等我们拿到可能就过期没用了。
  • 网络隔离:
    把关键API端点用防火墙隔离起来,只允许从特定的堡垒主机去访问。
  • 使用云版本:
    如果你用Jamf Cloud,自己碰不到底层服务器。但如果你觉得出问题了,可以联系Jamf支持,他们有内部的事件响应团队,能帮你查日志。他们还有付费的日志转发服务。你也可以让他们为API端点设置允许列表。

说实话,这些防御建议能出来,是因为Jamf团队在我们准备这次演讲时主动联系了我们。他们花时间跟我们聊,讨论能推荐些什么办法来防止这类事情发生。这点挺酷的,得谢谢他们。

致谢与结尾

Jamf Hound最初的验证是由我们同事完成的,后来这个想法也被采纳,整合进了新版BloodHound的Open Graph扩展里,可以给任何数据建模了。

也要感谢所有让我们在其真实环境里测试的客户们。

演讲最后是提问环节。有人问我们有没有测试过内核扩展之类的,我们说目前工具还不支持,但未来会探索更多集成方法。

这两个工具,EVE和Jamf Hound,都已经开源发布了。

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