服务端模板注入攻击(SSTI)的注入原理及实践 您所在的位置:网站首页 autojs脚本被检测 服务端模板注入攻击(SSTI)的注入原理及实践

服务端模板注入攻击(SSTI)的注入原理及实践

2023-04-25 08:39| 来源: 网络整理| 查看: 265

在介绍服务器模板注入之前,我们先科普一下模板引擎。模版引擎广泛用于从展示层分离程序逻辑,维基、博客和内容管理系统都倾向于使用模版引擎。不仅因为这是良好的编程实践,也因为它能够使不甚了解HTML知识的人员轻松地更新和维护网站内容或编写HTML格式的电子邮件。它也让专业的网页设计师利用这些代码快速而高效地建站。流行的模板包括Twig、Jade以及XWike Enterprise。一些引擎使用简单的字符串,占位符由数据替换。例如一封电子邮件模板开头可能是 "Dear {user_firstname}" ,在模板引擎中,"user_firstname" 则由底层数据库中的’first name‘所取代,还有些则包括额外的灵活性,诸如用for-each循环、递归宏和嵌入式表达来提供更丰富的功能。

一、模板注入与常见Web注入

      就注入类型的漏洞来说,常见 Web 注入有:SQL 注入,XSS 注入,XPATH 注入,XML 注入,代码注入,命令注入等等。注入漏洞的实质是服务端接受了用户的输入,未过滤或过滤不严谨执行了拼接了用户输入的代码,因此造成了各类注入。下面这段代码足以说明这一点:

//SQL注入 $query = "select * from sometable where id=".$_GET['id']; mysql_query($query); //模板注入 $temp->render("Hello ".$_GET['username']); 复制代码

       而服务端模板注入和常见Web注入的成因一样,也是服务端接收了用户的输入,将其作为 Web 应用模板内容的一部分,在进行目标编译渲染的过程中,执行了用户插入的恶意内容,因而可能导致了敏感信息泄露、代码执行、GetShell 等问题。其影响范围主要取决于模版引擎的复杂性。

二、模板注入原理

       模板注入涉及的是服务端Web应用使用模板引擎渲染用户请求的过程,这里我们使用 PHP 模版引擎 Twig 作为例子来说明模板注入产生的原理。我们先下面这段代码:



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有