文章总结: 本文讲述了作者使用ChatGPT5和GitHubCopilot组合加速漏洞挖掘的过程。作者针对Scada-LTS系统,通过Semgrep初筛并结合LLM进行分析与验证,仅用约3小时便发现了3个存储型XSS漏洞,成功申请到CVE编号。文章展示了LLM在减少噪音、聚焦问题及加速研究流程方面的显著优势,提出了人工与LLM结合的高效安全审计新范式。 综合评分: 90 文章分类: 渗透测试,漏洞分析,AI安全,WEB安全,漏洞POC
利用 LLM 加速漏洞挖掘:我是如何在 Scada-LTS 中发现 Stored XSS 并拿到人生第一个 CVE 的
haidragon haidragon
安全狗的自我修养
2026年2月6日 14:54 湖南
官网:http://securitytech.cc
📌 引言
我最初是在准备一份关于漏洞挖掘的培训材料。与其只做 PPT、用传统工具,我决定做一次真实实验,使用我最喜欢的一些大语言模型(LLMs)。
具体来说,我组合使用了 ChatGPT 5 + GitHub Copilot。目标是看看这些工具在真实世界漏洞的初筛、分析与利用流程中,究竟能加速多少。
结果非常惊人: 原本需要我几天做的人工审计、静态分析和动态测试,我在大约 3 小时内完成了。
期间我在 Scada-LTS 中验证了 3 个 Stored XSS 漏洞,提交到 VulDB,并最终注册为 CVE。这对我来说也是一个里程碑:我的第一个 CVE。
🔧 Fork Scada-LTS 与 Semgrep 初步筛选
实验的起点是从 GitHub fork Scada-LTS 项目。
Scada-LTS 是一个用于工业环境的开源 SCADA / ICS 平台,非常适合作为测试对象。Fork 完成后,我把代码库接入了 Semgrep —— 一个能够高亮不安全编码模式的静态分析工具。
Semgrep 标出了多个热点位置,包括:
- XML 解析器中的潜在 XXE
- JavaScript 中不安全的
innerHTML - Java 中的路径遍历
- 拼接格式化 SQL 字符串
这些都是非常适合深入分析的候选点。
与其手动逐条检查,我直接把这些标记行作为入口,交给 ChatGPT 继续深入分析。
点击查看大图
Semgrep 输出的潜在问题位置
💻 ChatGPT 连接终端环境
我在 macOS 上配置了 ChatGPT 5 App,并让它直接连接我的终端(MacOS App 的一个特性)。终端中运行的是 Kali Linux,但不是原生,而是通过 Exegol 容器环境模拟。
Exegol 配合 Orb 栈提供编排支持,能够快速启动,具备:
- 加速网络
- Rosetta x86 模拟
- VirtioFS 文件共享
- 多项性能优化
这让我在 ARM 主机上也能得到近似原生性能的 x86_64 Kali。
点击查看大图
Exegol Kali x86_64 启动
通过这种集成方式,我可以直接让 ChatGPT:
- 给出终端命令建议
- 查找代码引用
- 解析输出结果
- 将 Semgrep 命中点与真实代码路径关联
整个流程是迭代式的: Semgrep → ChatGPT → 精准搜索 → ChatGPT 再分析。
其中一个效率提升点是:我用 ripgrep 替代了 grep。
ripgrep 的优势:
- 默认递归
- 自动跳过 .gitignore
- 速度更快
- 高亮更清晰
这样可以在几分钟内,把成千上万行结果过滤成少量热点。
ChatGPT 直接检查终端输出
🤝 ChatGPT + Copilot 组合拳
ChatGPT 用来引导调查与提出假设,而 GitHub Copilot 则非常适合做验证工作。
Copilot 可以访问整个仓库的上下文,帮助确认 Semgrep 标出来的路径:
- 是否真的可利用
- 还是只是误报
例如 Copilot 确认:
虽然 XML 中允许 DOCTYPE,但外部实体被禁用,因此远程 XXE 不太可能,但仍可能触发 Billion Laughs DoS。
这种组合方式:
ChatGPT 探索 + Copilot 验证
极大加速了分析。
点击查看大图
使用 Copilot 进行二次确认
🔍 填充应用数据并验证漏洞
定位完热点之后,就要进入动态测试阶段。
问题是:Scada-LTS 需要大量配置数据才能正常跑起来,手动填会花好几个小时。
借助 ChatGPT Agent Mode,我查到了一个可以直接导入的示例项目,可以快速填充真实数据点、事件和报表。
导入后,我开始系统性测试字段。
第一个成功的利用点来自:
data_point_edit.shtm
Payload:
<imgsrc=xonerror=alert(1)>
我在 Data Point Name 字段实现了 Stored XSS。
随后又在:
- Data Source Edit
- Reports 模块(Colour 字段)
发现了第二、第三个漏洞。
每个都能成功弹窗。
这验证了 Semgrep 最初发现的:
- 不安全
innerHTML - 未转义 JSP 表达式
确实可以被利用。
点击查看大图
漏洞验证成功
🆔 从 VulDB 到 CVE
为了正式发布漏洞,需要和 CVE Numbering Authority(CNA) 合作。
CNA 是由 CVE.org 授权的机构,负责验证漏洞并分配 CVE ID。
如果厂商没有自己的 CNA,可以使用独立 CNA,例如 VulDB 或 MITRE。
我选择了 VulDB,因为它:
- 快
- 稳定
- 分析可信
流程非常清晰。
发布流程如下:
- 提交报告:向 VulDB 提交完整漏洞文档。
- 验证确认:检查影响、重复性、标准符合度,并进行厂商协调披露。
- 分配 CVE:其中三个漏洞合并后生成 CVE-2025-10234、CVE-2025-10235。
- 公开登记:VulDB 提交到 CVE.org 公布。
点击查看大图
VulDB 控制台
⏱ 时间线与总结
整个流程:
Semgrep → ChatGPT/Copilot → 利用 → CVE 注册
总共只用了 约 3 小时。 而传统方式通常需要好几天。
这个实验说明:
LLM 并不是取代人类,而是在放大人的能力。
它们可以:
- 减少噪音
- 聚焦真正问题
- 加速研究流程
- 提高质量
- 节省时间去打游戏 🎮
🧠 总结一句话
以前:人工 + 工具 现在:人工 × LLM
- 公众号:安全狗的自我修养
- vx:2207344074
- http://gitee.com/haidragon
- http://github.com/haidragon
- bilibili:haidragonx
#
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:安全狗的自我修养 haidragon haidragon《利用 LLM 加速漏洞挖掘:我是如何在 Scada-LTS 中发现 Stored XSS 并拿到人生第一个 CVE 的》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论