实战利用LLM辅助小程序逆向与HTTP报文漏洞挖掘

238 阅读16分钟

摘要

在Web安全与小程序逆向分析中,传统的自动化扫描器(如AWVS、Nessus)往往是“语法大师,逻辑白痴”——它们能轻易发现SQL注入,却难以理解复杂的业务上下文 。本文探讨了一种新的安全审计范式:利用大语言模型(LLM)作为虚拟安全专家,填补自动化工具的广度与人类专家的深度之间的鸿沟 。通过婚恋SaaS小程序的实战案例,我们将展示LLM如何通过理解业务逻辑,精准挖掘出越权访问(IDOR)与“非法图床”等深层风险,并深入剖析如何驾驭这一强大工具。

在Web安全与小程序逆向分析中,面对成千上万条HTTP请求日志,人工审计往往效率低下且容易遗漏逻辑漏洞。本文将介绍一种高效的新型工作流: “Fiddler抓包 + 文本导出 + LLM智能体分析” 。通过一个真实的婚恋交友SaaS小程序案例,我们演示了如何利用大模型快速破解签名算法,并从Raw报文中精准挖掘出严重级越权(IDOR)与未授权图床漏洞。

image.png


1. 核心思路:让LLM成为你的安全审计员

痛点与破局:从“工具”到“虚拟专家”

image

传统的安全测试面临着巨大的效率瓶颈:人工审计耗时耗力,而传统扫描器无法理解“一个订单ID只能被买家自己查看”这样的业务规则 。

image

LLM的引入不仅仅是工具层面的“提效”,更是一次维度的升级 。它不再是一匹更快的马,而是第一辆汽车 。通过将HTTP Raw报文投喂给LLM,我们实际上是在聘请一位不知疲倦、具备上下文理解能力的虚拟安全专家。它能像人类一样思考,从技术细节推演至业务风险,从而发现那些隐藏在正常流量下的逻辑漏洞。

image

传统的漏洞挖掘依赖安全专家的经验,而引入LLM后,我们可以将HTTP报文的上下文理解交给AI。

工作流概览

  1. 数据获取:利用Fiddler代理抓取小程序业务流量,保存为Raw Text。
  2. 逆向辅助:利用LLM分析反编译后的混淆JS代码,还原签名算法。
  3. 智能审计:将HTTP请求/响应报文投喂给安全智能体,自动识别越权、敏感信息泄露等逻辑问题.

image

graph LR
    A[Fiddler 抓包] -->|Save All Sessions as Text| B(HTTP Raw 报文)
    C[小程序反编译] -->|提取 JS 代码| D(混淆的加密逻辑)
    B --> E{LLM 安全智能体}
    D --> E
    E -->|输出| F[签名算法还原]
    E -->|输出| G[漏洞评估报告]
    G --> H[人工验证与复现]

2. 逆向阶段:LLM 破解签名算法

在对小程序解包(使用 KillWxapkg)并定位到关键业务逻辑后 ,我们发现所有敏感接口都带有 signaturenoncetimestamp 等防篡改头。

image

微信客户端V4.1后小程包位置

C:\Users\用户名\AppData\Roaming\Tencent\xwechat\radium\Applet\packages

命令行解包

KillWxapkg -id=wx857888d1186577f0 -in="APP.wxapkg" –restore

clipboard

关键字:getSignatureHeader( 目录搜索

clipboard

面对混淆后的JS代码,直接阅读非常晦涩。用工具稍微美化下

webfem.com/tools/js-de…

clipboard

clipboard

我们提取核心函数 getSignatureHeader 投喂给LLM,并要求其分析加密逻辑。

image

clipboard

算法思路

clipboard

LLM 分析结果: 模型精准识别出签名算法为 MD5 哈希,并指出了关键的拼接顺序: MD5("xt..."+nonce+fixedUrl+timestamp+salt)MD5("xt..." + nonce + fixedUrl + timestamp + salt)

这为我们后续伪造请求、验证漏洞打下了基础。


3. 漏洞挖掘案例一:HTTP Raw 报文中的越权访问 (IDOR)

     我们抓取了一个查看会员详情的接口 /api/guest/portal/details/1010 为了测试安全性,我们将包含请求头、Body及响应数据的完整Raw文本投喂给LLM,提示词为:“X婚小程序接口抓包如下...请评估WEB安全漏洞

image

clipboard

3.1 LLM 的推理分析

LLM (GLM-4.6) 迅速指出了该报文中存在的严重问题,并生成了详细的评估报告

提示词

# 角色: Web网络安全专家 # 简介:资深Web安全专家,在Web应用安全领域拥有8年以上实战经验。精通Web渗透测试、漏洞挖掘与修复、安全架构设计等核心技术,熟悉OWASP Top 10等主流Web安全威胁。曾主导多个大型Web应用系统的安全防护体系建设,成功发现并修复过数百个高危安全漏洞,擅长为Web应用提供从开发到运维的全生命周期安全解决方案。 # 技能: - Web渗透测试与漏洞挖掘 - Web应用安全架构设计 - OWASP Top 10威胁防护 - 安全编码规范制定 - Web安全测试与评估 - 安全漏洞修复与验证 - Web安全监控与应急响应 - API安全防护 # 规则: - 遵循Web安全最佳实践 - 确保符合PCI DSS、等保2.0等安全标准 - 采用"安全左移"开发理念 - 注重安全与用户体验的平衡 - 持续监控与防护 - 保护用户隐私与数据安全 让我们一步一步构建Web应用安全防护体系: # 工作流程(输出中间步骤和中间执行结果): 1. **Web资产识别与风险评估** - 全面清点Web应用资产(URL/接口/参数) - 识别核心业务功能和敏感数据 - 评估现有安全防护措施 - 进行Web威胁建模和风险评级 2. **安全架构设计** - 设计Web分层防御体系(网络/应用/数据) - 规划安全的身份认证与授权机制 - 制定输入验证与输出编码规范 - 设计CSRF/XSS/SQL注入防护方案 3. **安全开发规范** - 制定OWASP安全编码指南 - 规范安全配置基线 - 建立安全开发检查清单 - 实施安全开发生命周期(SDL) 4. **渗透测试与漏洞修复** - 执行全面的Web渗透测试 - 挖掘SQL注入/XSS/CSRF等高危漏洞 - 提供详细的漏洞报告和修复方案 - 验证漏洞修复效果 5. **安全监控与防护** - 部署Web应用防火墙(WAF) - 实施实时安全监控 - 建立安全事件响应机制 - 定期进行安全巡检 6. **API安全防护** - 设计安全的API认证机制 - 实施API访问控制 - 防护API常见安全威胁 - 监控API异常调用 # 输出格式: - 完整的Web安全防护方案,包含: - Web资产清单与风险评估报告 - 安全架构设计文档 - 安全开发规范与检查清单 - 渗透测试报告与漏洞修复方案 - WAF配置策略 - 安全监控与应急响应计划 - API安全防护方案 # 关键防护点: 1. **输入验证** - 对所有用户输入进行严格验证 - 防范SQL注入、XSS等攻击 - 实施白名单验证机制 2. **身份认证** - 采用多因素认证 - 实施强密码策略 - 防护暴力破解攻击 3. **会话管理** - 使用安全的会话机制 - 防范会话固定攻击 - 实施会话超时控制 4. **数据保护** - 敏感数据加密存储 - 安全传输(HTTPS) - 数据访问控制 # 工具推荐: - 渗透测试:Burp Suite、OWASP ZAP - 漏洞扫描:Nessus、Acunetix - WAF:ModSecurity、Cloudflare - 监控:ELK Stack、Splunk

image

  • 漏洞定性严重漏洞 - 越权访问 (IDOR)

image

  • 推理依据
    1. AI 注意到请求URL中的 1010 是一个可遍历的数字ID
    2. AI 分析出系统未验证请求者身份与被查询ID的归属关系,“任何已登录用户都可以通过遍历用户ID获取系统中所有用户的详细信息”

image

  • 敏感信息识别: AI 自动扫描响应体(Response Body),列出了泄露的敏感字段:完整手机号、详细地址(精确到市县)、家庭成员、经济状况等
3.2 验证结果

根据LLM的提示,我们尝试将ID修改为 1009 并重放请求,成功获取了另一名用户的隐私数据,证实了越权漏洞的存在。


4. 漏洞挖掘案例二:未授权上传与“非法图床”漏洞

在分析文件上传功能时,我们提取了 /base/file/upload 接口的 Fiddler Session,再次发送给 LLM 进行评估.

image

4.1 LLM 的深度洞察

这一次,LLM 的发现更为惊人。它不仅指出了技术层面的漏洞,还分析了业务层面的“滥用风险”。

image

LLM 评估报告核心点

  1. 认证缺失(严重) : AI 敏锐地捕捉到请求头中的 Authorization 字段为空。这意味着接口没有任何身份验证,“任何知道该接口URL的攻击者都可以直接调用此接口”
  2. 非法图床漏洞(中/高危) : AI 进一步指出,由于服务器返回了公开的图片URL, 且缺乏业务逻辑绑定,该接口极易被黑产利用作为“免费图床”。
    • 风险推演:攻击者可编写脚本无限制上传色情/赌博图片,利用受害者域名分发非法内容,导致域名被封禁或面临法律风险.

生成时序图

image

clipboard

LLM反馈修复建议

image

4.2 漏洞验证

我们在本地构造请求,删除 Authorization 头,直接上传一张图片。服务器返回 200 OK 并在响应中给出了公网可访问的图片链接,证实了LLM关于“认证绕过”和“资源滥用”的判断完全正确。

Web网络安全大拿agent

yuanqi.tencent.com/agent/bKlNN…

image

LLM帮助生成代码实现Reply

image

以下是DeepSeek R1复审与建议

关于“非法图床漏洞”,在网络安全行业标准中并没有一个统一的专有名称,它通常被归类为“未经授权的文件上传漏洞” 或 “不安全的文件上传漏洞” 。这类漏洞的核心问题在于系统允许用户上传恶意文件,且缺乏足够的安全校验。

下面这个表格汇总了它的核心危害与主流攻击手法:

方面具体说明
主要危害- 传播恶意内容:被用于散布诈骗信息、敏感政治言论或色情内容,损害企业公信力。- 被用作免费图床:消耗服务器资源,可能被竞争对手利用进行造谣。- 跨站脚本攻击(XSS):上传的恶意文件可窃取用户Cookie或执行未授权操作。- 远程代码执行(RCE):上传包含恶意代码的图片,最终可能完全控制服务器。- 供应链攻击:通过劫持合法软件更新,诱导用户下载恶意文件。
常见攻击方法- 绕过前端校验:直接伪造请求上传文件,绕过浏览器的格式检查。- 上传恶意文件:将木马等恶意程序伪装成图片上传,从而控制服务器。- 制作Polyglot文件:制作同时是有效图片和恶意脚本/Phar包的文件,欺骗检查并利用反序列化等漏洞执行代码。- 利用解析差异:利用服务器解析文件方式(如文件名、内容)的缺陷,实现XSS攻击。

如何有效防范

了解了漏洞的巨大危害后,采取严格的安全措施至关重要。你可以参考以下几点进行防御:

  • 严格的身份鉴权与访问控制:确保所有文件上传操作都经过有效的身份验证和授权检查,避免未登录用户随意上传。
  • 实施“白名单”策略:严格限制可上传的文件类型,只允许如jpg, png等必要的图片格式,并校验文件的Magic Number(魔法数,即文件头部的特定字节,用于标识文件真实类型),而不仅仅依赖文件后缀。
  • 隔离存储与无执行权限:将用户上传的文件存储在Web服务器目录之外,并通过专门的脚本或URL进行访问。同时,确保上传目录不具备执行权限,防止恶意脚本运行。
  • 重命名与扫描:对上传的文件进行随机重命名,避免通过文件名直接访问。对于图片,可以进行二次渲染或压缩,以破坏其中可能隐藏的恶意代码。此外,使用防病毒软件扫描所有上传文件。
  • 严格控制内部资源外泄:确保测试环境、内部工具的访问地址不对外网开放,避免给攻击者留下可乘之机。

综合安全评估与数据分析

根据上述挖掘结果,我们对该小程序的API安全性进行了综合画像。

漏洞分布统计表 :

漏洞类型涉及接口风险等级核心成因潜在后果
越权访问 (IDOR)/guest/portal/details/{id}严重后端未校验当前Token用户与请求ID的归属关系核心用户数据全量泄露
认证机制缺失/base/file/upload严重接口鉴权逻辑存在缺陷,允许空Authorization通过任意文件上传、服务器资源耗尽
非法图床/base/file/upload中/高危缺乏频率限制、文件类型白名单及业务绑定域名被封禁、法律风险、DDoS
信息泄露通用API中危响应数据未脱敏 (如手机号、详细地址)隐私合规问题
安全配置缺失通用API低危X-XSS-Protection: 0增加XSS攻击成功率

5. 方法赋能:与AI共舞的Prompt艺术

LLM并非即插即用的魔法黑盒,许多使用者觉得它“只会说空话”,往往是因为指令(Prompt)不够精准 [cite: 656, 658][cite_start]。要得到高质量的审计结果,我们需要从“使用者”转变为“AI训练师”。

image

5.1 反面教材

Prompt:“帮我分析这段HTTP报文有没有安全漏洞。”

  • 结果:AI通常会回复泛泛而谈的建议,如“请注意保护用户凭证”、“建议使用HTTPS”,对实战毫无帮助
5.2 结构化Prompt设计

✅ 高效策略:我们需要构建一个包含角色设定、工作流、输出格式的结构化

  • 角色设定 (Persona)

    "你是一名拥有20年经验的Web网络安全专家,擅长从攻击者(Red Team)和防御者(Blue Team)的双重视角思考..." 作用:激活模型在特定领域的深层知识库 。

  • 任务约束 (Constraints)

    "必须基于提供的HTTP Raw文本进行分析。严禁编造不存在的字段。重点关注逻辑漏洞(如越权、未授权访问)。"作用:减少幻觉,强制模型进行结构化思考 。

  • 输出格式 (Output)

    "请以JSON格式输出,包含字段:漏洞名称、风险等级、证据片段、修复建议。" 作用:便于后续自动化处理和报告生成 。

通过这种精细设计的交互,我们才能真正解锁LLM的潜能。

image


6. 局限性与风险控制:严谨的落地指南

尽管LLM表现出色,但它不是银弹。在实际的企业级应用中,我们必须直面其局限性,建立严谨的验证流程。

6.1 数据隐私红线

风险:将包含Token、Cookie或内部代码的Raw报文直接发送给公有云LLM,存在严重的数据泄露风险。 对策

  • 数据脱敏:在投喂前,务必使用脚本替换掉所有的敏感凭证(如替换为 Authorization: Bearer [MASKED])。
  • [cite_start]私有化部署:对于高机密场景,建议使用本地部署的开源模型(如 Llama 3、DeepSeek-Coder)或企业私有云方案。
6.2 “幻觉”与人工验证

风险:LLM有时会一本正经地胡说八道(幻觉),报告不存在的漏洞. 对策

  • 原则:“信任,但要验证”(Trust, but Verify)。
  • 流程:LLM是副驾驶(Co-pilot),方向盘必须握在人类手里。所有AI发现的漏洞,必须经过人工复现或脚本验证才能确认
6.3 上下文限制

风险:面对跨越数十个API的复杂电商下单流程,LLM的上下文窗口(Token Limit)可能不足,导致它“忘记”之前的业务状态 .  对策

  • 对于长链条逻辑,需要引入 RAG(检索增强生成)  技术,或者拆解业务逻辑分段投喂

7. 总结:LLM 在 Web 安全中的价值

本文通过一个真实的小程序案例,详细复盘如何通过逆向工程(反编译)、LLM辅助协议分析(签名破解),最终挖掘出严重的越权访问(IDOR)与未授权文件上传(非法图床)漏洞。

image

通过上述案例,我们可以看到 LLM 在处理 HTTP Raw 报文时的巨大优势:

维度人工审计LLM 辅助审计
上下文理解容易忽略Header细节(如Auth为空)全量扫描,精准识别字段缺失
敏感数据识别需人工肉眼过滤自动提取手机号、地址等隐私字段
风险关联关注技术漏洞(如上传Shell)业务视角,关联出“非法图床/资源耗尽”等滥用场景
效率单个接口需数分钟分析秒级生成结构化报告

**
**

下一步建议: 在日常的小程序或Web渗透测试中,建议将 Fiddler/Burp Suite 的流量导出 与 LLM 分析 标准化为固定流程。利用 LLM 的推理能力,不仅能发现显性的注入漏洞,更能挖掘出 IDOR、未授权访问等深层逻辑缺陷。

image

LLM辅助安全审计,不仅是一次技术升级,更是一场思维方式的变革。它要求我们将原本枯燥的“排查”工作,转化为充满创造力的“人机协作”。

通过掌握Prompt工程的艺术,并建立严谨的风险控制机制,安全从业者可以将LLM打造为最得力的助手。在未来,安全能力的护城河将不再仅仅是你掌握了多少种扫描工具,而在于你能否驾驭AI,让它为你看见那些人类肉眼看不见的风险