CTF技巧

    科技2022-08-13  92

    文章目录

    一、SSTI二、解题

    一、SSTI

    SSTI(Server Side Template Injection) 服务端模板注入 服务器模板中拼接了恶意用户输入导致各种漏洞

    二、解题

    打开某环境,发现GET请求参数显示在HTML页面之中,并且暗示了🐍(Python)

    令name={{config}},发现存在ssti

    在Python环境下,.__class__获取对应实例的类,.__mro__获取当前对象的所有继承类

    例如,测试空字符串得到object父类 得到所有类的父类object后,使用方法__subclasses__()查看所有类对象。

    并找到了warnings.catch_warnings模块,通过该模块可以访问os模块。

    因此,试图通过访问os模块执行命令查找根目录下的FLAG。

    __init__将对象实例化

    __globals__引用包含函数全局变量的字典

    在__builtins__下有eval、__import__等全局函数

    尝试导入os然后执行cmd命令

    warnings.catch_warnings.__init__.__globals__['__builtins__']['eval']('__import__("os").popen("cmd").read()')}}

    ls执行成功说明环境基于Linux

    使用cat访问/flag即可得到FLAG

    参考文章: 1.FLASK模板注入 (SSTI) 2.CTF SSTI(服务器模板注入)

    Processed: 0.018, SQL: 8