[RootersCTF2019]I_<3_Flask-1|SSTI注入】的更多相关文章

记录一下BUUCTF中两个类似的SSTI注入关卡 [BJDCTF2020]The mystery of ip-1: 1.打开之后显示如下: 2.在hint.php中进行了相关提示,如下: 3.既然获取的是ip地址信息,那我们此时应该想到包信息中与ip地址相关的参数:X-Forwarded-For,进行尝试,结果如下: 4.那就对X-Forwarded-For参数进行修改,尝试sql类注入,失败,那就在尝试下ssti注入,结果成功,如下: [CISCN2019 华东南赛区]Web11 1.打开之后…
1.打开之后在各个界面查看源代码,未发现很明显的有用信息,仅发现了提示,结果如下: 2.尝试输入数据,结果就是输入什么就回显什么,也未进行过滤,尝试进行sql注入失败,结果如下: 3.那就根据提示抓包查看下cookie信息,结果如下: 4.sql注入失败,这里想到了ssti注入,那就进行ssti注入测试,payload:{{2*2}},结果如下: 5.确定了ssti注入之后,该如何选择ssti注入方式呢,观察抓取的数据包中存在关于服务端的关键信息,结果如下: 6.确定服务端的语言之后,范围就很小…
1.打开之后给出了三个连接,分别查看下三个连接内得信息,结果如下: 2.url中参数包含一个文件名与一串应该是md5得加密的字符串,文件名已经获得了,就需要获取加密得字符串,但是加密字符串时需要使用到cookie_secret.搜索下tornado render信息,显示是找到模板进行渲染,因此就想到了ssti注入. 3.开始思考获取cookie_secret,未在三个页面中发现存在可利用得地方,然后就只能开始目录扫描,发现了error页面,就想到了修改前面正常的参数,然后看下报错界面,发现了错…
1.打开之后很明显的提示flask框架,但是未提供参数,在源代码中发现了一个git地址,打开之后也是没有啥用,结果如下: 2.这里我们首先需要爆破出来参数进行信息的传递,就需要使用Arjun这一款工具来进行破解,工具的使用过程: 1.pip3 install arjun 2.python3 setup.py install 输入arjun -h显示如下即可: 3.使用arjun爆破参数名,payload:arjun -u url -c 150 -d 0.5,成功获得参数名name,结果如下: 4…
源代码地址 (请用python2.7运行,python3有点出入) 注入点: 不是返回的静态模板而是反回模板字符串变得让客户端可以控制. XSS 这里直接 http://39.105.116.195:9000/<script>alert(1)</script>就会有反射性XSS flask对模板文件和模板文件中内容进行转义,可如果直接返回模板字符串或者直接返回字符串的话是不会转义的: 只有xss1不会弹框,因为传到了静态文件里面,flask会自动进行转义. 注入测试 http://…
在python沙盒逃逸中绕过道理是一样的. 1.python沙盒中删除了很多模块,但是没有删除reload reload(__builtins__),重新加载被删除的模块,直接命令执行,只用于py2 2.直接过滤了敏感字符,如eval,os等. {{().__class__.__bases__[0].__subclasses__()[59].__init__.__globals__.__builtins__['eval']("__import__('os').popen('ls').read()…
一篇以python Flask 模版渲染为例子的SSTI注入教学~ 0x01 Flask使用和渲染 这里简化了flask使用和渲染的教程 只把在安全中我们需要关注的部分写出来 来一段最简单的FLASK运行代码: 很简单的flask使用 将url的qing和方法绑定  返回"qing - Flask test"字符串 说一下模版渲染Jinja2中变量 控制结构 {% %} 变量取值 {{ }} 注释 {# #} jinja2模板中使用 {{ }} 语法表示一个变量,它是一种特殊的占位符.…
目录 基础 一些姿势 1.config 2.self 3.[].() 3.url_for, g, request, namespace, lipsum, range, session, dict, get_flashed_messages, cycler, joiner, config等 4.常用绕过 flask/jinja2 SSTI入门 SSTI注入绕过(沙盒逃逸原理一样) 探索Flask/Jinja2中的服务端模版注入(一) 探索Flask/Jinja2中的服务端模版注入(二) 从零学习f…
考点:SSTI注入 原理: tornado render是python中的一个渲染函数,也就是一种模板,通过调用的参数不同,生成不同的网页,如果用户对render内容可控,不仅可以注入XSS代码,而且还可以通过{{}}进行传递变量和执行简单的表达式. 网上看到的例子: #!/usr/bin/env python # -*- coding:utf-8 -*- from tornado.web import UIModule from tornado import escape class cust…
好久没更新博客了,现在主要在作源码审计相关工作,在工作中也遇到了各种语言导致的一些SSTI,今天就来大概说一下SSTI模板注入这个老生常谈的漏洞 前言 模板引擎 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,利用模板引擎来生成前端的html代码,模板引擎会提供一套生成html代码的程序,然后只需要获取用户的数据,然后放到渲染函数里,然后生成模板+用户数据的前端html页面,然后反馈给浏览器,呈现在用户面前. 模板引擎也会提供…