SSTI(模块注入)的简单学习

一,什么是ssti

SSTI即服务端模版注入攻击。由于程序员代码编写不当,导致用户输入可以修改服务端模版的执行逻辑,从而造成XSS,任意文件读取,代码执行等一系列问题。

二,常见的服务器模板引擎

1,php中常见的

(1)Smarty

Smarty算是一种很老的PHP模板引擎了,非常的经典,使用的比较广泛

(2)Twig

Twig是来自于Symfony的模板引擎,它非常易于安装和使用。它的操作有点像Mustache和liquid。

(3)Blade

Blade 是 Laravel 提供的一个既简单又强大的模板引擎。

和其他流行的 PHP 模板引擎不一样,Blade 并不限制你在视图中使用原生 PHP 代码。所有 Blade 视图文件都将被编译成原生的 PHP 代码并缓存起来,除非它被修改,否则不会重新编译,这就意味着 Blade 基本上不会给你的应用增加任何额外负担。

2,java中常见的

(1)JSP

非常的经典的模块引擎

(2)FreeMarker

FreeMarker是一款模板引擎: 即一种基于模板和要改变的数据, 并用来生成输出文本(HTML网页、电子邮件、配置文件、源代码等)的通用工具。 它不是面向最终用户的,而是一个Java类库,是一款程序员可以嵌入他们所开发产品的组件。

(3)Velocity

Velocity作为历史悠久的模板引擎不单单可以替代JSP作为Java Web的服务端网页模板引擎,而且可以作为普通文本的模板引擎来增强服务端程序文本处理能力。

3,python中常见的

(1)Jinja2

flask jinja2 一直是一起说的,使用非常的广泛,是我学习的第一个模板引擎

(2)django

django 应该使用的是专属于自己的一个模板引擎,我这里姑且就叫他 django,我们都知道 django 以快速开发著称,有自己好用的ORM,他的很多东西都是耦合性非常高的,你使用别的就不能发挥出 django 的特性了

(3)tornado

tornado 也有属于自己的一套模板引擎,tornado 强调的是异步非阻塞高并发

三,简单的判断模块方法

在这里插入图片描述

 四,实际例题

1,判断注入点和模块类型

(1)输入1,2

发现,登陆结果返回了用户名,说明用户名为注入点

(2)在用户名中输入{{7*7}}判断模块类型

返回49,说明存在ssti漏洞,且为twig或者jinja2

(3)输入{{7*'7'}}

 

返回7个7,说明为jinjia2模块。如果仍返回49则为twig

2,输入常见的语句查找flag

(1)常见的魔术方法

__class__  返回类型所属的对象
__mro__    返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。
__base__   返回该对象所继承的基类
// __base__和__mro__都是用来寻找基类的
__subclasses__   每个新类都保留了子类的引用,这个方法返回一个类中仍然可用的的引用的列表
__init__  类的初始化方法
__globals__  对包含函数全局变量的字典的引用__builtins__ builtins即是引用,Python程序一旦启动,它就会在程序员所写的代码没有运行之前就已经被加载到内存中了,而对于builtins却不用导入,它在任何模块都直接可见,所以可以直接调用引用的模块

(2)payload构造

使用__class__来获取内置类所对应的类,可以通过使用strlisttupledict等来获取

__init__        初始化类,返回的类型是function

__globals__[]     使用方式是 函数名.__globals__获取function所处空间下可使用的module、方法以及所有变量。 

os.popen() 方法用于从一个命令打开一个管道。

open() 方法用于打开一个文件,并返回文件对象

寻找flag

读取flag

  

 

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值