FastCMS 0.1.6 插件系统RCE代码审计




















xiaohack博客专注前沿科技动态与实用技术干货分享,涵盖 AI 代理、大模型应用、编程工具、文档解析、SEO 实战、自动化部署等内容,提供开源项目教程、科技资讯日报、工具使用指南,助力开发者、AI 爱好者获取前沿技术与实战经验。























大家好,我是 Tobias 。
之前一直覺得現在的武俠遊戲畫面越來越好,但自由度卻不如以前的 MUD 或小說。 所以我寫了一個基於 LLM 的後端系統(刀鋒 Blade RPG ),想嘗試做一個「邏輯仿真」的江湖。
最大的特點是 Emergent Gameplay (湧現式玩法) 。我不寫死腳本,而是讓 AI 根據物品屬性和情境去推理結果。
舉兩個實際測試的例子:
傳統遊戲是 A+B=C 的死配方。但在這裡,系統識別的是藥性。

比如這張圖裡,我手裡有止血草、金銀花(清熱)和鹽巴(消炎)。我沒有點擊「製作紅藥水」,而是嘗試將它們混合。AI 後台推演出了「清創生肌湯」。當然,如果你亂配,也可能配出毒藥。
戰鬥結束抓到活口怎麼辦?

如果你的隊伍裡有醫生(吳老頭),系統會允許你使用「針灸或藥物」來逼供(選項 2 );或者你可以玩心理戰,當面救治他的同伴來瓦解他的心理防線(選項 4 )。這些都不是預設的對話樹,而是基於角色能力的動態選項。
雖然是純文字,但為了解決 LLM 的幻覺和 Context Window 限制,我做了不少工程優化。
我寫了一篇詳細的開發日誌,介紹了動態天氣和敘事邏輯的實現細節:
👉 拒絕換皮:為什麼我堅持開發一款「純文字」的 AI 開放世界武俠?
為了測試 Engine 的負載,我給 V 友準備了福利:新註冊直接送 40 輪免費體驗。
歡迎大家來嘗試各種騷操作,把 AI 玩壞也沒關係(請輕噴)。
Chrome 的原生标签页功能已经在 145 及以上版本可用,使用时开启 chrome://flags/#vertical-tabs 重启浏览器即可。
试用了一下感觉在 Windows 上观感非常奇怪,macOS 的红绿灯按钮在左上角,能填补空位还好一些,Windows 的三个按钮在右上角,显得不伦不类的。另外标签页区域折叠之后,默认鼠标放在标签页上面是关闭标签页,切换标签页的时候很容易误触。感觉不管是外观还是易用性都还是不如 Edge 。


多年来我一直以为花洒那玩意,只要能出水就大差不差,直到前几天换了新的花洒(很便宜,40+),才发现花洒至少在以下两个方面实打实提升了我的生活质量:
如果你使用 fake-ip 作为 DNS enhance mode,并配置了网段 198.18.0.0/15,也许你也遇到过使用 Chrome 或 Edge 浏览器时反复弹出 “是否允许私有网络访问” 的提示:
如果你选择了拒绝,那么你很可能也经历过这种页面样式会崩坏或功能无法正常运行的情况。
那么,这是为什么?
Chrome 从 2020 年以来一直在推进 “弃用从不安全网站访问私有网络端点” 的功能。
从 Chrome 94 开始,公共非安全环境(广义上讲,指非通过 HTTPS 或私有 IP 地址提供的网站)被禁止向私有网络发出请求。开发人员可以在 Chrome 116 版本发布前采用配置 token 的方式暂时绕过这一限制。从 Chrome 117 开始,弃用试用期结束。所有网站必须停止从不安全网站访问私有网络端点,或者配置用户策略。
2025 年 9 月 29 日,本地网络访问权限提示正式在 Chrome 142 中推出。 本地网络访问权限会限制网站向用户本地网络中的服务器(包括在用户机器上本地运行的服务器)发送请求的能力,要求用户先向网站授予权限,然后才能发出此类请求。
理论上来讲这是好事,可以保护用户免遭针对内网设备的 CSRF 攻击,并降低网站利用这些请求对用户本地网络进行指纹识别的能力。
198.18.0.0/15 网段被分配给网络互连设备的基准测试。RFC2544 解释说,分配此网段是为了最大限度地减少冲突的可能性。这使得这个专门测试用的没什么冲突的私有网段天然适合作为 fake ip 的 range。
但问题是,Chrome 的这个访问权限提示会在请求 198.18.0.0/15 网段时通过严格的访问控制策略将其也作为内网网段一起拦截。请看草案中的 Chrome 私有网络访问的限制列表:
一旦我们通过 Chrome 浏览网页,此网页通过跨域请求一些静态资源等内容时,由于我们的代理软件返回的 fake-ip 被认为是一个内网设备,Chrome 会弹出访问权限提示。如果允许,那么 PNA 的为了安全所做的设计将失效;如果禁止,网页拿不到静态资源,行为和样式会崩坏。
为了解决这一问题,我的第一直觉是:整理一下可用的内网地址中不会被拦截的部分。对比 Wikipedia 上列出的私有地址和 Chrome 的限制列表,Wikipedia 标记为私有但 Chrome 不拦截的段:
192.0.0.0/24 - IETF 协议分配用,256 个地址太少,fake-ip 会很快耗尽
198.51.100.0/24 和 203.0.113.0/24 - TEST-NET 文档示例用,同样只有 256 个地址
233.252.0.0/24 - 组播测试用,地址太少且组播段可能有特殊处理
224.0.0.0/4 到 239.255.255.255 - 组播地址,协议层面不适合做单播 fake-ip
240.0.0.0/4 - 预留未来使用的 E 类地址,其实这个保留地址段由于历史包袱一直没放出使用是最适合的,但很多系统和路由器会直接丢弃这个段的包,有兼容性问题,部分老旧网络设备、防火墙、甚至 Windows 的 TCP/IP 栈会拒绝处理 E 类地址。
似乎没有很合适的选项。
虽然我不太愿意这样做,但私有地址都不合适的情况下,只能将目标转向虽然不标准但能解决问题的公网 IP。众所周知,互联网刚出现的时候,是为军方服务的,早期有大量的 IP 地址被美国军方申请走并且一直没有归还。这些美国国防部拥有的海量地址过去近三十年间几乎从未出现在互联网路由表中。例如:
7.0.0.0/8
11.0.0.0/8
21.0.0.0/8
22.0.0.0/8
26.0.0.0/8
28.0.0.0/8
29.0.0.0/8
例如 6.0.0.0/8、11.0.0.0/8 和 28.0.0.0/8 这些都是归属于美国国防部的公网 IPv4 地址段。这些 IP 是标准的公网 IP,因此,将 fake-ip 映射到这些网段,可以骗过浏览器,使其认为你在访问公网,从而绕过 PNA,同时不会对真正的内网 IP 地址产生影响,从而也吃上了 PNA 的安全性红利。
虽然在 2021 年,美国国防部曾短暂地通过一家名为 Global Resource Systems 的公司向全球互联网宣告了这些路由,但其它时候几乎从未被使用过。一般我们也不会有主动访问美国国防部的需求,所以不会影响到公网。此外,占用美国国防部的地址段似乎也是腾讯云、华为云等云厂商的通用的脏方法,虽然不标准,但是我们至少可以比较乐观地预期在未来较长的时间内以这种方式解决问题。
所以,配置 fake-ip-range: 28.0.0.0/8,Chrome 可以看到我的内网地址是在美国国防部的公网 IP 段,Chrome 小姐你也不想你拦截国防部的事被人知道吧,从而解决开头提到的问题。
不生效的话,检查 store-fake-ip 是否开启,清理浏览器缓存,检查 Service Worker 和 DNS 缓存。
自从各大善人慷慨解囊,各种工具层出不穷,开源仓库百花齐放。在 ai 编程,ai 使用开源库工具的便利的同时,不知不觉中,我们的电脑也早已是千疮百孔!
工具的版本落后!
不知名的依赖包!
打开就没关过的服务端口!
安上就找不到的命令行工具!
设置了就忘了的系统环境配置!
每一个都在威胁着你的开发环境和日常使用的安全性!
所以,我又搓了个好东西,分享给大家!
麻烦支持个小星星
[Dev-Janitor 清道夫]
欢迎体验,并反馈你的宝贵意见!
@石头 大佬提供概括图
paypal.cn 支持中国个人身份证 注册卖家 进行全球收款啦!
注册流程非常简单:
支持 全球 200+ 国家 / 地区付款,
人民币可直接提现到国内银行卡,
全程合规,不用自己跑银行、不用外汇申报。
官方注册指南:https://objects.paypal.cn/ppcn-martech-infostore/assets/PayPal 中国个人卖家注册指南.pdf
截止:2026 年 1 月 17 日 11:53:18 日,Kiro 正式宣布试用账号下线 Opus 模型,现有的 2api 白嫖 opus 的渠道可以说是被大砍了一刀,本教程将教你一步步的注册 aws 并获取免费的五个月 PRO + 额度
不要填自己的卡 不要填自己的卡 不要填自己的卡 不要填自己的卡
你需要准备:
注:过 Cursor、Gemini 那种卡是过不去 aws 的,尽量能不填自己的信息就不填
此教程虚拟卡需求比较高,不建议采用个人的信息,谨慎观看
在确定好了这些之后,一步步跟着教程走
打开 AWS 免费套餐页面:免费云计算服务 - AWS 免费套餐
点击 创建免费账户。
这里有个坑:不要用企业域名邮箱。
推荐顺序:
我用的是 QQ 邮箱,后续激活邮件都能正常收到。
选择 个人账户,然后填写基本信息。
AWS 会要求绑定信用卡或借记卡,用于身份验证,一定要一个适用于验证的 aws 虚拟卡,可以上某鱼搜索 “aws 虚拟卡”,卡头尽量选稳一点的,不然容易秒封或者水电单,文章起始推荐的卡头目前还算稳定
验证通过后,账户创建完成。
默认的 200 美金抵扣金在开启 IAM 后就会失效,如果你是新用户会赠送 100 美金额度,约 2 月 Kiro Pro+…
AWS 默认的 Root 账户权限太高,生产环境不能直接用。我们需要通过 IAM Identity Center 创建子账户。
登录 AWS 控制台后,在顶部搜索框输入 IAM。
点击 IAM Identity Center(不是 IAM)。
进入后点击 启用。
首次启用需要等待 1-2 分钟,AWS 会自动创建组织架构。
启用成功后,先创建用户组(Groups)。
点击左侧菜单 Groups → Create group。
输入组名(比如 Developers),暂时不分配权限,直接创建。
点击左侧菜单 Users → Add user。
填写用户信息:
点击 Next,选择刚才创建的用户组,完成创建
用户创建后,AWS 会发送激活邮件到用户邮箱。
让用户点击邮件中的激活链接,设置密码。
回到 AWS 控制台,刷新用户列表,确认状态显示 已激活。
现在需要把 AWS 的用户同步到 Kiro,实现单点登录(SSO)。
在 IAM Identity Center 的 Dashboard 页面,找到 AWS access portal URL。
这个 URL 格式类似:
https://d-xxxxxxxxxx.awsapps.com/start
复制这个 URL,后面要填到 Kiro 里。
打开 Kiro 控制台,搜索 kiro(或直接访问你的 Kiro 实例),如果你找不到下图的页面,可以在上图的 setting 页面点击 delete profile 删除后再创建可以直接进入到这个页面
登录后进入管理后台。
找到 计划管理(Plans),选择你要添加用户的计划,这里一定要选 Kiro Pro+,因为 AWS 提供的是 200 美金的试用额度,如果选 power 就只能享受一个月了,一万余额基本是用不完的,Kiro Pro 又不够用(不确保是否有 Opus 模型)
点击 添加用户。
把光标放到搜索框,会自动显示刚才在 AWS 创建的用户列表。
选中用户,点击 添加。
回到 Kiro 的登录配置页面。
找到 Sign-in URL 字段,粘贴刚才复制的 AWS access portal URL。
保存配置。
这一步必须做,否则会登录失败。
在 Kiro 的设置页面,找到 身份认证(Authentication)。
把身份认证开关 关闭(Disable)。
原因:Kiro 默认会启用自己的身份验证,和 AWS SSO 冲突。关闭后才能正常跳转到 AWS 登录页。
打开 Kiro 登录页面,输入刚才创建的用户邮箱。
点击登录后,会自动跳转到 AWS 登录页。
输入在激活邮件中设置的密码,登录成功后会跳回 Kiro。
看到 Kiro 的工作台,说明集成完成。
检查垃圾邮件箱,AWS 的邮件容易被拦截。
如果确实没收到,回到 IAM Identity Center,选中用户,点击 Resend invitation。
确认两件事:
整个流程的核心是:
配置完成后,团队成员只需要记住一个 Kiro 账号,就能访问 AWS 的所有资源。
如果你的团队也在用 AWS + Kiro 的组合,这套流程可以直接复用。
开头语
分享的方便挺简单,各位大佬可能都会用,新人纯水一下。大佬们别见笑!
网盘分享的软件,可以通过手机文件管理器 filemanager 进行下载安装。
其实不光是软件,手机内容都可以通过 filemanager 进行上传下载,和家里电脑,nas,电视都可以交换数据。本人觉得挺方便的,可能还有比这个更加简单的方法,小白的我也没接触过太多,希望有大佬能够分享。
首先需要用到的软件:安卓手机 file manager 软件 和 openlist 挂载任意网盘。
第一步:
手机安装文件管理器 file manager
软件可以通过手机谷歌下载
或者访问下面天翼网盘共享文件
天翼云盘 珍藏美好生活 家庭云 | 网盘 | 文件备份 | 资源分享
第二步:手机打开软件
点击远程存储
添加一个新的远程储存
这里选择添加 webdav,使用自己现有的 opnelist
(手机和电视也能添加电脑 smb 共享,局域网电脑等路径,无缝连接家里设备共享内容)
手机登录 openlist,需要账号密码,这里设置了用户和密码
主机:填 opnelist 的域名 +‘/dav’
端口:opnelist 端口
设置完成,手机通过文件管理器远程存储界面登录设置好的网盘了。
手机上传软件到 openlist 分享步骤
第一步:选择需要分享的 app,长按弹出对话框,点击提示符
第二步:点击右上角三点,选择分享
第三步:选择文件管理器分享,注意 app 名字
第四步:选择一个网盘路径保存
第五步:找到新上传文件,改名。不然时间长了不知道什么软件,就尴尬了。
PDD 买的这个卡
选择的 esim 服务商是德国沃达丰 +49 号码
办理该 esim 半小时内搞定,具体油管搜 esim 保号能看到教程
【开卡免费,每 90 天充值 0.01 欧元即可】
使用的 esim 写入软件是 NekokoLPA 和 EasyEUICC
EasyEUICC 检测该卡有 2 项为【 !】号,NekokoLPA 读取正常
所以我选择 NekokoLPA 进行写卡
写卡正常
选择启用后,开始出现奇奇怪怪的地方,手机显示有信号,软件却提示该卡未启用
然后就悲剧了,当时没有截图,重启手机之后,两个开源软件均无法读取 esim 实体卡
换卡槽、重启、换软件版本,均无效
但好就好在,只要插着手机卡,还能有信号以及接收短信验证码
只是该 Esim 实体卡,无法再进行删除、禁用 / 启用、写卡操作
相当于一张 esim 实体卡变成 sim 实体卡了……
最烦的就是前两项! 这个精简版推荐下 减少很多 token!
3 个 MCP:网络搜索(Exa)、context7、grep.app
默认使用 Orchestrator 足够了!
这个地址仅供测试,它无法改动,只支持 mihomo (clash) https://download.nature.qq.com/SnsShare/Windy/1768620180_b65eb5ff_ech-mihomo
公益节点的域名,用的人一多,就会被墙,我注册了好多域名,也死了一堆,在不断抗争中不断头大。
这几天在 TG 群里看到 CMLiussss 更新了 v2ray/mihomo/singbox 一些 ECH 相关的功能。
ech 就是把你真实访问的目标加密传给 cloudflare,
但是 cloudflare 能解密真实目标,对外只知道你往 cloudflare-ech.com 连接。
全球大量免费的 cloudflare 套餐都强制开启 ech,
墙如果杀掉 cloudflare-ech.com 会导致大量误伤。
所以目前看还是挺稳的
但是 sing-box/xray/shadowRocket(小火箭) 等软件,需要固定的 ech 密钥,cloudflare 的 ech 是四个小时一变,就算要做订阅,也是需要设置 4 小时更新一次,用起来不是很方便。
mihomo (clash 系列的继承者) 能自动抓取 ech 密钥,非常方便。
订阅里依然使用 sni.111000.de5.net 这个被大部分地区屏蔽的域名,但不影响使用。
安卓端:ClashMetaForAndroid v2.11.22 Releases · MetaCubeX/ClashMetaForAndroid · GitHub
苹果端:clash mi Clash Mi App - App Store
PC 端 / 路由器 (nikki),基本都能更新内核,更新到 v1.19.18 及以上版本即可。
因为原作者 大佬没有提供火狐扩展,我个人用着不是太方便,就用 AI 更新了一版 Firefox 扩展,并且也增加了一个油猴脚本。有一些小 Bug,不耽误使用,使用油猴脚本的时候 “连接 Token” 需要自己填,脚本填好,Flow2API 配置管理界面也要填。
开源地址如下:
下一步准备更新 墨子 大佬的 RedInk,适配一下 Flow2API 的返回格式。
偶然给我弹出来的,点进去看一眼似乎实现的还是比较初步
不过基本功能也做出来了,支持多家模型、能执行命令,可以使用 MCP 和 SKILL,也支持多平台使用
不过目前我没什么可以用得上的,有没有佬体验一波说说感观?
我们都知道,现在的 LLM 模型有很多,这些顶尖的有:Claude、GPT、Gemini 等,它们论综合能力或许有高低之分,但是绝对不是非此即彼、非优即劣的,而是它们各有自己独特的擅长点。就我个人的体验和感受来说(或许不专业):Claude 模型优点是复杂问题能精准剖析,但是缺点也很明显,就是经常 “丢三落四”;那么 GPT 模型优点就是仔细且全面(像个细心的母亲一样,哈哈),但是缺点就是对于综合性高的难题往往会出现一知半解的情况;总结就是:Claude 模型对全局的理解很强,GPT 模型对点上的 “抠细节” 很到位。那么,如果将它们组合起来,那就是无敌拳,于是该 SKILL 诞生了!!!
用 Claude Code 先规划,再写代码,写完代码,让 Codex 这个严格 “母亲” 细细得审查,不出意外,99% 的情况下它总能给挑出一些问题来,而且 Claude 会非常 “点头” 的认可,因为它总是 “丢三落四”。
当然你也可以直接让 ClaudeCode 做计划,Codex 做干活的实现(网上也有很多人这么干),但我个人不太喜欢这么干,我总感觉 Codex 干的活没有 Claude 干的好(这是我的个人看法),我更喜欢直接让 CC 干活,干完活让 Codex 审查,审出问题让 CC 修复,CC 修复完再让 Codex 继续审,循环直到没有任何问题时打破,最后完美结束任务。
1、下载下面的技能 zip
2、将包含 SKILL.md 文件的 codex 目录放到 ~/.claude/skills/ 目录下面
3、下载下面的自定义命令 zip
4、解压 codex-review.zip 应该会只有一个 codex-review.md 文件,将其放到 ~/.claude/commands/ 目录下面
注意:上面的路径风格使用的是类 Unix 系统的,如果你是 Windows 系统,那么请使用:
%USERPROFILE%\.claude或C:\Users\<你的用户名>\.claude,那么skills和commands子目录是相对于.claude目录的,也就是说:
技能目录:%USERPROFILE%\.claude\skills\或C:\Users\<你的用户名>\.claude\skills\
斜线命令目录:%USERPROFILE%\.claude\commands\或C:\Users\<你的用户名>\.claude\commands\
5、重启 Claude Code
先让 CC 写代码,写完之后使用下面的命令:
/codex-review 审查刚刚修改的代码
注意:“审查刚刚修改的代码” 这个描述是可选的,如果你需要指定它审查代码的范围,那就描述一下限定范围,如果你不写,它默认就是审查你所有的 Git 未提交的代码。
喝杯茶~~~静静得等待它完成就行啦!