SSTI,即服务器端模板注入漏洞(Server-Side Template Injection)
在渲染模板时,代码不严谨并且没有对用户的输入做严格过滤,将导致SSTI漏洞,造成任意文件读取和RCE命令执行;
注入原理: 使用 Twig 模版引擎渲染页面,其中模版含有 变量,其模版变量值来自于 GET 请求参数 $_GET[“name”]。
魔术方法
1 2 3 4 5 6 7 8 9 10
| __class__ 查找当前对象的当前类 __base__ 查找当前类的父类 __mro__ 查找当前类的所有继承类 __subclasses 查找父类下的所以子类 __init__ 查看类是否重载,出现wrapper表示没有重载 __globals__ 以字典的形式返回当前对象的全部全局变量 __builtins__ 提供对python的所以内置标识符的直接访问 __getitem__ 这个方法返回所给键对应的值。当对象是序列时,键是整数。当对象是映射时(字典),键是任意值。,可代替中括号,绕过中括号过滤 __popen__ 通过创建一个管道,调用 fork 产生一个子进程,执行一个 shell 以运行命令来开启一个进程 os os就是“operating system”的缩写,os模块提供的就是各种 Python 程序与操作系统进行交互的接口。通过使用os模块,一方面可以方便地与操作系统进行交互,另一方面页可以极大增强代码的可移植性
|