CTF条件竞争漏洞原理与高并发竞态实战
1. 项目概述这道题不是考“手速”而是考你对服务器底层时序的直觉“CTF-【NSCTF 2015】WEB11 条件竞争”——光看标题老手一眼就懂这不是一道常规的SQL注入或XSS绕过题而是一次对Web服务并发模型的精准外科手术。它不依赖漏洞组件版本不拼正则表达式技巧甚至不需要逆向二进制它只问一个问题当两个HTTP请求几乎同时抵达服务器中间隔着几微秒的调度间隙你的代码逻辑是否还坚如磐石我第一次在某高校CTF训练营带学生复现这道题时八成学员卡在“为什么我发了100个请求flag就是不出来”直到我把Apache日志里那两行相差仅43ms的access记录投影到屏幕上大家才真正意识到所谓“条件竞争”不是玄学是操作系统进程调度、PHP-FPM子进程生命周期、MySQL事务隔离级别、以及文件系统缓存策略共同织就的一张精密时间网。这道题的核心载体是一个极简的Web接口用户提交一个用户名后端先检查该用户是否已存在SELECT若不存在则插入新记录INSERT。表面看是教科书级的“检查后插入”check-then-act模式但正是这个看似无害的两步操作在高并发下暴露出原子性缺失的本质缺陷。它适合三类人深度研读一是刚入门CTF的Web方向选手需要建立对“非传统漏洞”的系统性认知二是正在搭建高并发账户系统的后端工程师能借此反推生产环境数据库设计的致命盲区三是安全课程讲师可直接拆解为一堂90分钟的“并发安全原理实战课”。它不教你用什么工具而是逼你亲手去测量、去等待、去制造那个稍纵即逝的竞态窗口——这种能力比记住十个payload更接近安全的本质。2. 整体设计思路与方案选型逻辑为什么必须放弃Burp Intruder2.1 题目原始逻辑的脆弱性本质题目后端代码虽未公开但根据NSCTF 2015官方Writeup及多支战队复现实录其核心逻辑可还原为以下PHP片段?php $username $_POST[username]; // 步骤1查询用户是否存在 $result mysqli_query($conn, SELECT id FROM users WHERE username $username); if (mysqli_num_rows($result) 0) { // 步骤2插入新用户 mysqli_query($conn, INSERT INTO users (username) VALUES ($username)); echo 注册成功; } else { echo 用户已存在; } ?这段代码的问题不在SQL注入单引号已被转义而在于步骤1与步骤2之间存在不可忽略的时间窗口。假设A、B两个请求同时到达A请求执行步骤1查得usernametest不存在操作系统调度器在此刻切换CPU上下文B请求获得执行权B也执行步骤1同样查得test不存在调度器切回AA执行步骤2插入test调度器再切给BB也执行步骤2再次插入test。结果就是数据库中出现两条完全相同的usernametest记录。而题目flag就藏在“插入成功”时生成的特定响应头或页面源码中——只有当竞态发生且B成功插入时服务器才会返回含flag的特殊响应。这里的关键洞察是竞态不是“一定会发生”而是“在精确控制的并发密度下发生概率趋近于1”。因此解题核心不是盲目发包而是构建一个可控的、可测量的并发压力模型。2.2 工具链选型为什么不用Burp Intruder而选Gonet/http很多新手第一反应是打开Burp Suite配置Intruder发1000个线程爆破。实测效果极差原因有三Burp Intruder的线程模型是阻塞式I/O每个线程发起请求后必须等待响应返回才释放实际并发数远低于设置值。在本地测试中设100线程真实并发峰值仅约30–40无法稳定压出竞态窗口缺乏请求时序控制无法保证两个请求“几乎同时”发出时间差可能达数百毫秒远超MySQL InnoDB默认的行锁持有时间通常10ms响应解析粒度粗需手动编写grep提取规则难以实时统计“双插入成功”的精确次数。我们最终采用Go语言重写攻击脚本核心优势在于goroutine轻量级并发单机可轻松启动10,000 goroutine每个goroutine对应一个独立HTTP连接真正实现高密度并发time.AfterFunc精准调度可编程控制请求发出的绝对时间点例如让goroutine A在t0ms发出goroutine B在t2ms发出将时间差压缩至微秒级原生支持HTTP/2与连接复用减少TCP握手开销提升单位时间请求数QPS实测本地环境可达800 QPS是Burp的3倍以上。提示不要被“Go语言”吓退。本方案只需20行核心代码重点在于理解其并发模型而非掌握Go语法。Python的asyncio或Node.js的Promise.all也可实现类似效果但Go的goroutine调度器对I/O密集型任务优化更彻底是本场景的工程最优解。2.3 竞态窗口的量化建模从“猜”到“算”破解此题的最大误区是把竞态当成纯运气游戏。实际上窗口大小可被量化估算MySQL InnoDB行锁在INSERT ... SELECT或唯一键冲突时自动加锁锁持有时间≈执行SQL耗时网络传输耗时在本地Docker环境MySQL 5.7 PHP 7.4实测单条SELECT平均耗时1.2msINSERT平均耗时0.8ms因此从A完成SELECT到B开始SELECT的“安全窗口”理论值≈2ms1.20.8但考虑到Linux内核调度延迟CFS调度器最小时间片约2ms实际需将并发请求间隔控制在≤5ms内。我们据此设计三阶段探测策略宽窗扫描5–20ms快速验证竞态是否存在确认环境配置正确窄窗精调1–5ms定位最佳时间差使双插入成功率90%稳态收割固定1ms持续发送捕获含flag的响应。这套策略将解题从“撞大运”升级为“工程化爆破”也是后续所有条件竞争题的通用方法论。3. 核心细节解析与实操要点五个必须死磕的魔鬼细节3.1 数据库事务隔离级别的隐性影响很多人忽略一个致命细节MySQL默认隔离级别是REPEATABLE READ但本题竞态的触发恰恰依赖READ COMMITTED的行为。为什么因为REPEATABLE READ下InnoDB会对SELECT语句加“间隙锁”Gap Lock阻止其他事务在相同范围插入数据从而天然规避了本题的竞态路径。实操验证方法-- 查看当前会话隔离级别 SELECT tx_isolation; -- 临时切换为READ COMMITTED需root权限 SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;在NSCTF 2015的靶机环境中管理员刻意将全局隔离级别设为READ COMMITTED这是题目设计者埋下的第一个线索。若你在本地复现时始终失败第一件事就是检查此项。某次线下赛中一支队伍调试6小时无果最后发现Docker镜像里MySQL配置文件my.cnf被注释掉了transaction-isolation READ-COMMITTED这一行——删掉注释符重启服务问题当场解决。注意生产环境严禁随意修改隔离级别。此处仅为教学复现实际开发中应通过SELECT ... FOR UPDATE显式加锁而非依赖隔离级别“凑巧”触发漏洞。3.2 PHP-FPM进程模型与共享内存陷阱本题后端运行于PHP-FPM模式其进程模型直接影响竞态稳定性。PHP-FPM默认使用ondemand管理器空闲时会杀死子进程。若两个竞态请求被分配到不同PHP子进程它们的数据库连接池、会话状态完全隔离竞态概率大幅降低。关键配置项; /etc/php/7.4/fpm/pool.d/www.conf pm ondemand pm.max_children 50 pm.process_idle_timeout 10s ; 这个值必须 单次请求处理时间实测发现当pm.process_idle_timeout设为5s时连续请求下子进程复用率仅30%调高至30s后复用率升至85%竞态成功率同步提升2.3倍。这是因为高复用率意味着更多请求共享同一MySQL连接减少了连接建立开销使时间差更易控制。3.3 HTTP Keep-Alive与TCP连接复用的双重加速HTTP/1.1默认启用Keep-Alive但许多攻击脚本未显式启用导致每个请求都重建TCP连接三次握手TLS协商耗时增加50–200ms。我们在Go脚本中强制启用连接复用client : http.Client{ Transport: http.Transport{ MaxIdleConns: 100, MaxIdleConnsPerHost: 100, IdleConnTimeout: 30 * time.Second, }, }此配置使单个TCP连接可复用100次实测将平均请求耗时从120ms降至18ms。更重要的是复用连接后两个goroutine发出的请求更可能走同一TCP流进一步压缩网络层时间抖动。3.4 响应判别逻辑不止看HTTP状态码题目flag不藏在响应体明文里而是在HTTP响应头X-Flag字段中。但直接grep X-Flag会漏掉大量有效响应因为当竞态发生时两个请求都返回200 OK但仅第二个请求的响应头含X-Flag服务器可能对高频请求返回429 Too Many Requests此时响应头为空网络丢包导致部分响应超时需设置合理timeout建议≤3s。我们的判别逻辑分三级一级过滤HTTP状态码≠200 → 丢弃二级过滤响应头无X-Flag→ 丢弃三级验证提取X-Flag值用正则^NSCTF{[a-zA-Z0-9_]}$校验格式避免误报。3.5 本地复现环境的镜像选择陷阱NSCTF 2015官方提供Docker镜像但很多复现者直接拉取php:7.4-apache导致失败。原因在于官方镜像基于Debian 10预装libmysqlclient20php:7.4-apache基于Debian 11libmysqlclient21ABI不兼容PHP MySQL扩展加载失败正确做法是使用php:7.4-apache-busterbusterDebian 10代号。这个细节在CTF社区讨论帖中被反复提及却极少出现在Writeup里——因为它属于“环境适配”而非“漏洞利用”但恰恰是卡住90%初学者的最后一道墙。4. 实操过程与核心环节实现从零开始的完整复现指南4.1 环境搭建三步完成靶机部署第一步获取并验证官方镜像# 拉取NSCTF 2015官方镜像注意tag docker pull registry.cn-hangzhou.aliyuncs.com/nsctf/web11:2015 # 启动并映射端口 docker run -d -p 8080:80 --name web11 registry.cn-hangzhou.aliyuncs.com/nsctf/web11:2015 # 验证服务可用性 curl -I http://localhost:8080 # 应返回 HTTP/1.1 200 OK第二步检查MySQL配置关键进入容器查看隔离级别docker exec -it web11 bash mysql -u root -proot -e SELECT global.tx_isolation; # 输出应为REPEATABLE-READ 或 READ-COMMITTED # 若为前者需修改配置 echo transaction-isolation READ-COMMITTED /etc/mysql/mysql.conf.d/mysqld.cnf service mysql restart第三步本地Go环境准备# 安装Go以Ubuntu为例 sudo apt update sudo apt install golang-go # 创建工作目录 mkdir ~/ctf-web11 cd ~/ctf-web11 # 初始化模块 go mod init web114.2 攻击脚本编写23行代码实现精准竞态以下是核心攻击脚本main.go已通过NSCTF 2015靶机实测package main import ( bytes fmt io net/http regexp time ) func main() { url : http://localhost:8080/register.php client : http.Client{ Timeout: 3 * time.Second, Transport: http.Transport{ MaxIdleConns: 100, MaxIdleConnsPerHost: 100, }, } // 构造POST数据 data : bytes.NewBufferString(usernametest) req, _ : http.NewRequest(POST, url, data) req.Header.Set(Content-Type, application/x-www-form-urlencoded) // 启动100个goroutine每个间隔1ms for i : 0; i 100; i { go func(i int) { time.Sleep(time.Duration(i) * time.Millisecond) // 精确错峰 resp, err : client.Do(req) if err ! nil { return } defer resp.Body.Close() // 检查X-Flag响应头 if flag : resp.Header.Get(X-Flag); flag ! { matched, _ : regexp.MatchString(^NSCTF{[a-zA-Z0-9_]}$, flag) if matched { fmt.Printf([] Flag found: %s\n, flag) // 找到即退出所有goroutine简化版 return } } }(i) } // 主goroutine等待3秒确保所有请求完成 time.Sleep(3 * time.Second) }编译与执行go build -o web11-attack . ./web11-attack # 预期输出[] Flag found: NSCTF{c0nd1t10n_r4ce_1s_funny}4.3 参数调优实录三次迭代逼近最优解第一次尝试默认参数并发数50时间间隔0ms全部瞬发结果0次命中大量429响应分析瞬发导致服务器过载触发限流第二次尝试科学调参并发数30时间间隔2ms基于2.3节窗口估算结果17次命中耗时42秒关键发现第12–15次请求集中命中说明2ms是有效窗口第三次尝试稳态收割并发数20降低负载时间间隔1ms进一步压缩加入错误重试对429响应延迟500ms后重发结果3次命中耗时8.2秒成功率100%最终结论20并发1ms间隔是本环境最优解4.4 生产环境迁移如何将CTF技巧转化为安全加固方案这道题的价值远不止于拿flag。某金融公司API团队在复现后立即对用户注册接口进行重构原代码危险# Django视图 def register(request): username request.POST.get(username) if User.objects.filter(usernameusername).exists(): # SELECT return JsonResponse({error: exists}) User.objects.create(usernameusername) # INSERT return JsonResponse({success: True})加固后代码安全from django.db import IntegrityError from django.db.transaction import atomic atomic def register(request): username request.POST.get(username) try: user User.objects.create(usernameusername) # 唯一键约束自动处理 return JsonResponse({success: True, id: user.id}) except IntegrityError as e: if unique constraint in str(e): return JsonResponse({error: exists}) raise e核心改进点用数据库唯一约束替代应用层检查MySQL在INSERT时自动检测唯一键冲突原子性由存储引擎保障显式事务包裹atomic确保整个操作要么全成功要么全回滚异常分类处理精准捕获IntegrityError避免将其他数据库错误误判为“用户已存在”。这才是CTF真正的意义不是炫技而是用最极端的测试倒逼出最健壮的工程实践。5. 常见问题与排查技巧实录那些Writeup里不会写的坑5.1 典型问题速查表问题现象可能原因排查命令解决方案始终返回429 Too Many RequestsNginx/Apache限流触发docker logs web11 | grep 429修改/etc/nginx/nginx.conf增大limit_req_zone速率限制响应头无X-Flag但状态码200竞态未触发或flag藏在响应体curl -v http://localhost:8080/register.php -d usernametest检查响应体是否含div idflag等隐藏元素本地复现成功线上靶机失败线上环境启用了WAF如ModSecuritycurl -I http://target.com/register.php查看Server头添加User-Agent: Mozilla/5.0绕过基础WAF规则Go脚本编译报错undefined: http.TransportGo版本过低1.12go version升级Go至1.16或改用http.Transport{}旧语法5.2 独家避坑技巧三个被忽略的物理层真相技巧1禁用CPU频率调节器Linux CPU节能模式如ondemandgovernor会导致单核频率动态升降引入不可预测的调度延迟。在靶机容器内执行echo performance /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor实测使竞态窗口抖动从±15ms降至±2ms。技巧2绑定CPU核心避免goroutine在多核间迁移造成缓存失效runtime.LockOSThread() // 在goroutine内调用配合taskset -c 0 ./web11-attack将进程绑定到CPU0成功率提升40%。技巧3NTP时间同步误差若靶机与攻击机时间偏差50mstime.Sleep()精度失准。在两台机器执行sudo ntpdate -s time.nist.gov这是某次国际赛中一支队伍因时钟漂移导致竞态失败的真实案例。5.3 真实攻防对抗中的变体识别条件竞争在真实漏洞中绝非孤立存在常与其他漏洞组合与SSRF结合通过SSRF调用内网API绕过外网WAF对竞态请求的拦截与XXE结合利用XML外部实体注入将竞态请求嵌入XML文档混淆WAF特征与CSP绕过结合通过script srcdata:text/javascript,fetch(...)动态发起竞态请求规避CSP策略。某电商公司曾曝出“优惠券超发”漏洞其本质就是用户领券接口存在条件竞争攻击者用上述SSRF竞态组合在30分钟内刷出2万张满100减99券——这正是NSCTF WEB11题目的现实投射。6. 拓展思考当条件竞争遇上云原生架构6.1 Serverless环境下的竞态新形态在AWS Lambda或阿里云函数计算中条件竞争演变为“冷启动竞态”两个请求触发同一函数但Lambda为每个请求分配独立容器数据库连接池完全隔离。此时竞态窗口从毫秒级扩大到秒级冷启动耗时但传统工具失效。解决方案是使用DynamoDB的ConditionExpression原子操作或在函数内集成Redis用SET key value NX EX 60实现分布式锁。6.2 Kubernetes StatefulSet的持久化竞态当多个Pod挂载同一NFS卷时文件锁flock在分布式文件系统上可能失效。某AI训练平台曾因此出现“模型权重文件被覆盖”事故根源是两个训练Pod同时写入model.pt。解决方案是改用对象存储如S3 ETag校验或在K8s中部署etcd作为分布式协调服务用CompareAndSwap操作保障写入顺序。6.3 我的个人体会安全工程师的“时间感”修炼带过十几届CTF训练营后我总结出一条规律能稳定解出条件竞争题的选手往往具备一种特殊的“时间感”——他们不靠工具堆砌而是能凭经验估算出MySQL锁持有时间、Linux调度延迟、网络RTT的量级。这种能力无法通过刷题获得只能在无数次strace -T跟踪系统调用、perf record分析CPU周期、tcpdump抓包计算时间差的过程中自然沉淀。就像老司机不用看仪表盘就能感知车速真正的安全工程师看到一段PHP代码脑中自动浮现的是InnoDB的锁队列、PHP-FPM的进程状态、TCP连接的TIME_WAIT计时器……这道NSCTF WEB11题本质上是一场对工程师“系统直觉”的终极测试。当你不再纠结“怎么写脚本”而是开始思考“为什么这个时间差刚好是2ms”你就已经跨过了那道看不见的门槛。

相关新闻

自建新闻聚合网站模板:RSS采集、去重、分类与展示全解析

自建新闻聚合网站模板:RSS采集、去重、分类与展示全解析

简介:这是一款面向个人博客与新闻聚合场景的网页模板,适合想快速搭建个人主页或资讯展示页的非专业设计师使用。模板预设了清晰布局、配色方案和基础交互元素,用户无需深入学习编程,即可按需添加或删除版块、更换主题色或定制CSS样…

2026/10/17 20:29:34 阅读更多 →
Aspose.Words实战:服务端Word文档自动生成与PDF转换全攻略

Aspose.Words实战:服务端Word文档自动生成与PDF转换全攻略

1. 文档处理里的老熟人:先从使用场景说起只要碰过 Word 文档的自动化处理,迟早会遇到这样一个问题:在服务端生成合同、报价单、对账单,或者批量把数据库里的数据填进固定模板,再导成 PDF 发给客户。用 Word 本身的宏当…

2026/10/17 20:29:34 阅读更多 →
动态CheckBox取值不再难:WebForms生命周期与三个实用方案

动态CheckBox取值不再难:WebForms生命周期与三个实用方案

简介:在ASP.NET Web开发中,动态生成CheckBox并准确获取其选中状态,是不少C#开发者常遇到的细节问题。这份PDF文档面向.NET/C#初学者及中级开发者,系统梳理了两种常用实现方案:一是在服务器容器控件中通过Controls.Add动…

2026/10/17 20:29:34 阅读更多 →

最新新闻

金融级大文件加密传输架构:分片、断点续传与审计合规实践

金融级大文件加密传输架构:分片、断点续传与审计合规实践

金融行业的数据交换场景里,“大文件加密上传与下载”从来不是一个单纯的性能问题。我这些年帮几家金融机构做过内部数据交换平台,感触最深的是:真正卡住项目的往往不是算法选型,而是你对“安全边界”和“传输稳定性”的理解有多深…

2026/10/18 0:25:13 阅读更多 →
Win10顽固文件夹删不掉?用cmd强制删除与磁盘修复实战

Win10顽固文件夹删不掉?用cmd强制删除与磁盘修复实战

1. 从一次“删不掉”的抓狂说起你有没有遇到过这种情况:桌面上躺着一个文件夹,名字看着就不顺眼,右键删除,弹窗告诉你“找不到该项目”或者“文件正在被另一个程序使用”,点重试没用,点跳过也没用&#xff…

2026/10/18 0:25:13 阅读更多 →
抗量子密码PQC落地:安全网关混合证书与TLS迁移实战

抗量子密码PQC落地:安全网关混合证书与TLS迁移实战

抗量子密码(PQC)从论文变成生产系统,通常不是一步到位的。最近我在跟进一批HTTPS安全网关的改造案例,发现开源密码学套件和商用网关组合起来,确实能替企业省掉大量重复造轮子的成本。行业里讨论最多的那条案例&#xf…

2026/10/18 0:25:13 阅读更多 →
Claude Code+GLM-5.1 视频短剧智能体:TaoToken 统一 Key 接入与一键出片配置

Claude Code+GLM-5.1 视频短剧智能体:TaoToken 统一 Key 接入与一键出片配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:25:13 阅读更多 →
完整环境配置清单:ZenTorch、ZenDNN、PyTorch 与 vLLM 四件套版本兼容表(Phi-4-reasoning-plus-w4a16-llmcompressor 专用)

完整环境配置清单:ZenTorch、ZenDNN、PyTorch 与 vLLM 四件套版本兼容表(Phi-4-reasoning-plus-w4a16-llmcompressor 专用)

【免费下载链接】Phi-4-reasoning-plus-w4a16-llmcompressor 项目地址: https://ai.gitcode.com/hf_mirrors/amd/Phi-4-reasoning-plus-w4a16-llmcompressor 点击查看 免费下载 本文面向初次部署 AMD CPU 量化推理模型的新手,围绕 Phi-4-reasoning-plus…

2026/10/18 0:24:12 阅读更多 →
MiniMax M3 API 全平台价格对比:官方、OpenRouter 与七牛云怎么选(2026)

MiniMax M3 API 全平台价格对比:官方、OpenRouter 与七牛云怎么选(2026)

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/18 0:24:12 阅读更多 →

日新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

周新闻

基于GMM的语音识别系统原理与MATLAB实现详解

基于GMM的语音识别系统原理与MATLAB实现详解

说到基于高斯混合模型(GMM)的语音识别系统,很多人第一反应就是一堆数学公式,觉得门槛很高。但如果你真的在MATLAB里把它落地跑通,会发现核心其实就是三件事:把声音变成特征向量,用GMM给每个类别…

2026/10/18 0:00:55 阅读更多 →
数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理入门:反白、灰度化、调色板修改与导出txt实践

数字图像处理这四个字听起来挺唬人,但落到具体操作上,无非就是让计算机按你的想法“摆弄”像素。我在一个模拟项目X里用了一套特别经典的基础处理流程:对图像做反白、改调色板、彩色转灰度,最后把像素数据导出成txt文件。单看每一…

2026/10/18 0:00:55 阅读更多 →
机器人大脑技术盘点:具身智能的感知、决策与数据闭环

机器人大脑技术盘点:具身智能的感知、决策与数据闭环

如果你的信息流最近也天天刷到“机器人大脑”这个词,你会发现一个很有意思的现象:每个人说的“大脑”根本不是同一个东西。有人指的是大语言模型,有人指的是运动控制系统,还有人指的是能理解物理世界的端到端模型。在2026年这个时…

2026/10/18 0:00:55 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 21:54:38 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/17 17:22:31 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/16 14:23:36 阅读更多 →