ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

云时代两大RCE王牌:SSRF打云元数据与SSTI打模板引擎,hack-skills攻击链详解

云时代两大RCE王牌:SSRF打云元数据与SSTI打模板引擎,hack-skills攻击链详解 云时代两大RCE王牌SSRF打云元数据与SSTI打模板引擎hack-skills攻击链详解【免费下载链接】hack-skillsHelping AI Agent become an awesome practical hacker!项目地址: https://gitcode.com/gh_mirrors/ha/hack-skills如果你做安全测试或CTF一定听过这两个名字**SSRF服务器端请求伪造**和SSTI服务端模板注入。在云计算时代它们已经从普通Web漏洞升级为拿云凭据、直接RCE的王牌级漏洞——SSRF 可以驱动服务器去请求169.254.169.254这个云元数据地址把云厂商的临时密钥读出来SSTI 则能让模板引擎替你执行任意系统命令。本文基于 hack-skills 这个 AI Agent 安全知识库中的两大技能文档用最通俗的方式拆解这两条通往 RCE远程代码执行的攻击链帮你快速建立完整的思路框架。一、先搞懂SSRF 和 SSTI 为什么是云时代王牌 简单类比一下SSRF你让服务器帮忙打开一个网页结果你给的网址其实是服务器自己机房里的门。服务器替你开门你把机房里的东西云凭据、内网管理面板、Redis都看了一遍。SSTI网站用模板引擎渲染页面比如把{{用户名}}替换成真实名字如果攻击者的输入没被过滤模板引擎就会把{{恶意表达式}}当成代码直接执行。两者的共同点最终都能实现 RCE——一个通过读云凭据 → 拿到云账号控制权一个通过模板引擎直接执行命令。hack-skills 将这两类漏洞分别沉淀为独立的技能目录每个目录包含主文档SKILL.md和配套的场景、载荷扩展文档SSRF 技能skills/ssrf-server-side-request-forgery/SKILL.mdSSTI 技能skills/ssti-server-side-template-injection/SKILL.md二、SSRF 打云元数据一条 URL 如何偷走云凭据1. 找到 SSRF 入口哪些参数会代你发请求任何接收URL、IP、主机名的参数都可能是 SSRF 入口。常见的参数名有url、imageUrl、redirect、callback、src、dest等更隐蔽的入口还包括PDF/截图生成器、Webhook 配置字段、通过 URL 导入 CSV 等功能。完整入口清单和验证方法见 skills/ssrf-server-side-request-forgery/SKILL.md 的第 1、2 节。2. 打云元数据169.254.169.254 是什么所有主流云厂商的虚拟机都有一个本地小门提供元数据接口包含实例信息、临时 IAM 凭据等云环境元数据入口AWS EC2 (IMDSv1)http://169.254.169.254/latest/meta-data/AWS EC2 (IMDSv2)需先 PUT 获取 token再带 token 访问Google Cloudhttp://metadata.google.internal/computeMetadata/v1/Azurehttp://169.254.169.254/metadata/instance?api-version...阿里云http://100.100.100.200/latest/meta-data/Kubernetes读取挂载的 ServiceAccount token 文件⚠️关键技巧AWS 的 IMDSv2 虽然要 token但如果 SSRF 支持自定义请求头攻击者完全可以自己完成先 PUT 拿 token、再 GET 读凭据的两步操作——这意味着 IMDSv2 并不能挡住 SSRF。各云厂商的完整端点目录在 skills/ssrf-server-side-request-forgery/URL_PARSER_TRICKS.md 中有专门整理。3. 绕过 IP 黑名单同一个地址的马甲很多应用会直接封掉127.0.0.1和169.254.169.254但这个地址有几十种写法十进制2852039166即 169.254.169.254 的数值形式十六进制0xa9fea9fe八进制0251.0376.0251.0376IPv6 映射[::ffff:169.254.169.254]DNS Rebinding用TTL0的域名第一次解析返回公网 IP 通过检查第二次解析返回内网 IP 完成攻击DNS Rebinding 的完整时序分析和绕过矩阵参考 skills/ssrf-server-side-request-forgery/SCENARIOS.md 第 2 节。4. SSRF → Redis → RCE 经典链当元数据打不动时SSRF 还有另一条通往 RCE 的路打内网 Redis。用gopher://或dict://协议向内网 Redis6379 端口发送命令让 Redis 把一段计划任务crontab写到/var/spool/cron/目录计划任务到期执行反弹 shellRCE 达成这条完整的真实案例链含 WebLogic CVE-2014-4210 场景在 skills/ssrf-server-side-request-forgery/SCENARIOS.md 第 1 节有完整拆解。三、SSTI 打模板引擎一行表达式如何变成任意命令执行1. 探测7*7 49 就够了SSTI 探测的第一课用数学题代替漏洞利用。发送{{7*7}}如果页面返回49而不是原文说明 Jinja2 或 Twig 在服务端求值了${7*7}返回 49 则是 FreeMarker / Velocity / Java EL% 7*7 %则是 ERB / EJS。一个巧妙的区分技巧发送{{7*7}}——返回7777777是 Jinja2Python 字符串乘法返回49是 TwigPHP 强制转数字。完整引擎指纹识别决策树见 skills/ssti-server-side-template-injection/ENGINE_PAYLOADS.md 第 1 节。2. 引擎 → RCE 的对应关系识别出模板引擎后每条引擎都有成熟的 RCE 链核心思路是利用模板引擎访问底层运行时模板引擎技术栈RCE 核心思路Jinja2Python / Flask通过config.__globals__拿到os模块调用popen执行命令FreeMarkerJava / Spring实例化freemarker.template.utility.Execute对象直接执行TwigPHP / Laravel注册未定义过滤器回调到exec函数VelocityJava反射调用java.lang.Runtime.exec()ERBRuby / Rails% system(命令) %直接执行ThymeleafJava / Spring Boot借 SpEL 表达式T(java.lang.Runtime)执行各引擎的完整 RCE 载荷矩阵在 skills/ssti-server-side-template-injection/ENGINE_PAYLOADS.md 中按引擎逐一整理。3. 沙箱绕过Jinja2 的高级玩法Flask 等框架常用 Sandbox沙箱限制模板能力但 Jinja2 沙箱有多条成熟逃逸路线MRO 子类遍历.__class__.__mro__[1].__subclasses__()可以列出对象体系的所有子类找到subprocess.Popen后直接执行命令——这是不依赖 Flask 特定对象的万能链下划线被过滤用十六进制编码attr(\x5f\x5fclass\x5f\x5f)代替__class__点号被过滤改用[]下标写法这些沙箱绕过技巧详细记录在 skills/ssti-server-side-template-injection/SKILL.md 第 4 节。4. 真实 CVE 场景SSTI 不止存在于 Web 表单skills/ssti-server-side-template-injection/SCENARIOS.md 收录了多个真实案例值得特别记住两个Jira SSTICVE-2019-11581命令输出不出现在页面而是出现在发给管理员的邮件里——这就是盲 SSTI的典型需要借助 OOB 回连验证Maccms 8.x 模板 eval搜索框输入直接进入eval()配合 base64 绕过引号过滤直接写 webshell四、两条攻击链对比何时用哪个维度SSRF 打云元数据SSTI 打模板引擎前置条件存在可传 URL 的参数用户输入进入模板渲染最终目标云凭据 → 云账号接管 / 内网服务 RCE直接 RCE防御焦点URL 校验黑名单/白名单模板输入净化、避免render_template_string核心难点绕过 IP 过滤与协议限制引擎指纹识别与沙箱绕过 实战中两者常组合出现先用 SSTI 拿到 RCE再在服务器内直接请求元数据接口读云凭据或者用 SSRF 打内网 Redis 落地 crontab两条链殊途同归。五、如何用 hack-skills 学习这两条链hack-skills 是一个面向 AI Agent 的可组合安全知识库采用主入口 → 分类入口 → 深度技能的三层结构。对本文涉及的两大主题推荐阅读路径主入口 skills/hack/SKILL.md了解整套技能库的导航方式SSRF 主线skills/ssrf-server-side-request-forgery/SKILL.md快速开始 过滤器绕过决策树→ SCENARIOS.mdCVE 案例与 DNS Rebinding 深挖→ URL_PARSER_TRICKS.md跨语言 URL 解析差异与全云厂商端点目录SSTI 主线skills/ssti-server-side-template-injection/SKILL.md多语探测序列 各引擎 RCE 链→ ENGINE_PAYLOADS.md按引擎的指纹与载荷矩阵→ SCENARIOS.mdJira、Confluence、Spring Cloud Gateway 等真实 CVE 场景项目总览与结构说明见 README.md 和 README_CN.md。结语云时代的安全攻防SSRF 和 SSTI 是绕不开的两条主线SSRF 考验的是URL 校验的完整性SSTI 考验的是模板边界的清晰性。理解169.254.169.254的多种伪装形态、掌握7*7探测法和各引擎的 RCE 思路你就掌握了从普通 Web 漏洞走向云环境 RCE 的完整路径。更多细节与真实案例都藏在 hack-skills 的上述技能文档里值得逐节精读。【免费下载链接】hack-skillsHelping AI Agent become an awesome practical hacker!项目地址: https://gitcode.com/gh_mirrors/ha/hack-skills创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表