BUGKU-simple_SSTI_1漏洞注入

本文详细介绍了Flask中的SSTI漏洞,涉及利用魔术方法查找可执行代码的子类,通过`popen`等函数执行命令的过程。讲解了如何利用这些机制构造payload进行反弹shell等攻击,并强调了二次渲染在模板注入中的关键作用。
摘要由CSDN通过智能技术生成

SSTI漏洞注入

SSTI全称Server side template injection.服务端模板注入这节课主要讲flask的模板注入.flask会把类似于 的变量当做参数来渲染并填充到web页面,如果该参数可控并被后台解析则有可能被注入恶意代码导致注入漏洞请注意 模板注入只会存在于二次渲染中,无二次渲染不会出现模板注入。

注入过程

  1. 确定模板类型
    在这里插入图片描述
  2. 利用魔术方法寻找可命令执行的子类
    魔术方法:
    class 返回类型所属的对象
    mro 返回一个包含对象所继承的基类元组,方法在解析时按照元组的顺序解析。
    base 返回该对象所继承的基类 // __base__和__mro__都是用来寻找基类的
    subclasses 每个新类都保留了子类的引用,这个方法返回一个类中仍然可用的的引用的列表
    init 类的初始化方法
    globals 对包含函数全局变量的字典的引用
    寻找子类:
    Python3:
    使用file类读取文件的方法: <class ‘_frozen_importlib_external.FileLoader’>这个类索引号;
    利用os._warp_close类的 popen函数执行命令:
    [].class.mro[-1].subclasses()[128].init.globals’popen’.read()
    ().class.bases[0].subclasses()[128].init.globals[‘builtins’]‘import’.popen(‘whoami’).read()
    ().class
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kingx3

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值