Web_python_template_injection
Created: February 17, 2023 3:38 PM
Tags: Web
Parent item: ADworld (https://www.notion.so/ADworld-6c15bf2df32c40e8a863deae2acc0902?pvs=21)
URL: https://adworld.xctf.org.cn/challenges/details?hash=8fe14e15-d91a-4557-a1b0-301700d3d25c_2&task_category_id=3


SSTI模板注入
1、什么是SSTI?
SSTI就是服务器端模板注入(Server-Side Template Injection),实际上也是一种注入漏洞。
可能SSTI对大家而言不是很熟悉,但是相信大家很熟悉SQL注入。实际上这两者的思路都是相同的,因此可以类比来分析。
2、引发SSTI的真正原因
render_template渲染函数的问题
渲染函数在渲染的时候,往往对用户输入的变量不做渲染。
也就是说例如:{{}}在Jinja2中作为变量包裹标识符,Jinja2在渲染的时候会把{{}}包裹的内容当做变量解析替换。比如{{1+1}}会被解析成2。如此一来就可以实现如同sql注入一样的注入漏洞。
判断类型


__class__ #返回type类型,查看对象的类型
__bases__ #返回tuple类型,列出该类的基类
__mro__ #返回tuple类型,给出解析方法调用的顺序
__subclasses__() #返回内建方法builtin_function_or_method,获取一个类的子类
__globals__ #返回dict类型,对函数进行操作,获取当前空间下能使用的模块、方法、变量,
http://61.147.171.105:61354/{{[].class.base.subclasses()}}

7803

被折叠的 条评论
为什么被折叠?



