buu_ssti

  1. SSTI刷题
    1. Flask/Jinja2
      1. [BJDCTF 2nd]fake google
      2. [WesternCTF2018]shrine
    2. Tornado render
      1. [护网杯 2018]easy_tornado

SSTI刷题

网上找的老图了:

这里的绿线表示结果成功返回,红线反之。有些时候,同一个可执行的 payload 会在不同引擎中返回不同的结果,比方说49会在 Twig 中返回49,而在 Jinja2 中则是7777777。

参考:一篇文章带你理解漏洞之 SSTI 漏洞(不知道为啥有时候打不开…)

Flask/Jinja2

参考:Flask/Jinja2 SSTI 学习

flask之ssti模版注入从零到入门(比较基础,对python没啥基础的同学比较友好。)

[BJDCTF 2nd]fake google

随便输了点东西之后提示ssti:

经过测试,最后输入49后返回7777777,应该是jinja2:

输入:{{ config.items() }}:没找到什么东西image-20201028154211531

然后根据上面那篇从零到入门构造?name={{"".__class__.__bases__[0].__subclasses__()[117].__init__.__globals__['popen']('ls /').read()}}读取根目录,可以看到flag在根目录下:image-20201028180800101

构造payload:?name={{"".__class__.__bases__[0].__subclasses__()[117].__init__.__globals__['popen']('cat /flag').read()}}

image-20201028181125205

[WesternCTF2018]shrine

一打开是一坨源代码,直接告诉你是flask模板image-20201029122954582

查看网页源代码会好看些:

safe_jinjia是一个简单的waf,会将()替换为空,并且加上{% set config=None%}{% set self=None%}

简单测试:image-20201029125633873)可以看到config为空:image-20201029125709203

想要绕过圆括号的过滤,但是绕着绕着发现绕不过去:image-20201029131107064

然后又在想能不能使得set失效,但是同样失败,看了wp才发现是去找其他的配置

参考:

https://eviloh.github.io/2018/09/03/TokyoWesterns-2018-shrine-writeup/

https://www.cnblogs.com/Cl0ud/p/12316287.html

Tornado render

[护网杯 2018]easy_tornado

一打开有三个txt,逐一点开,flag.txt给出了flag的文件名/fllllllllllag,并且根据hints.txt,访问需要文件名+filehash,filehash为:md5(cookie_secret+md5(filename))。刚开始抓包看cookie,但是找了蛮久的都没找到,然后就直接在filename输入flag文件名,出现了报错界面(当filename和filehash不匹配就会出现),并且msg是可控的,根据welcome.txt的render想到ssti:

image-20201029103332717

虽然也是python写的,但是这题不像flask那样利用python的属性,而且它有waf,刚开始我想的是如何绕过waf,但是看了wp才知道自己的思路完全不对,应该利用tornado本身的属性image-20201029105613423

通过查找资料可以知道tornado为了保证cookie的安全有一个cookie_secret,并且保存在setting中,构造payload:/error?msg={{handler.settings}}得到cookie_secret:image-20201029110717221

剩下的就很简单了

利用/hints.txt验证:image-20201029111513390

得到flag:image-20201029111648970

文章标题:buu_ssti

本文作者:Kyle

发布时间:2020-10-27, 16:54:08

最后更新:2020-10-29, 17:02:05

原始链接:https://silver2835.github.io/2020/10/27/buu-ssti/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录