python flask ssti学习笔记

访客4年前黑客资讯535

python flask ssti学习笔记

学ssti就像是对python原理的一层深入探索,入口很简单,就是用户输入未经过滤便被服务器模板渲染,将其当作变量解析替换,从而达到读取文件或者执行命令等目的

简单示范

漏洞代码:

以上代码存在ssti漏洞点在于render_template_string函数在渲染模板的时候使用了%s来动态的替换字符串,我们知道Flask 中使用了Jinja2 作为模板渲染引擎,{{}}在Jinja2中作为变量包裹标识符,Jinja2在渲染的时候会把{{}}包裹的内容当做变量解析替换。

简单验证

image-20200202201526733

服务器将{{}}的内容直接执行后返回了结果

image-20200202201646169

直接返回出配置变量值,存在敏感信息

入门操作

爆全局变量

任意文件读取

ctf题目中大多数是需要读取flag或者读取其他源码的

接下来利用一些骚操作读取文件吧

python中,不用引入直接使用的内置函数称为 builtin 函数,例如我们通常用的open,chr,ord等等

image-20200217204039400

利用关键字寻找与读文件有关的类

Python2

image-20200202205202185

这不是我们很熟悉的file吗,直接用就好了

image-20200202205714666

或者让我们更加深入一点

python2没有ipython,输出比较混乱我们用python3的相同类替代分析下

image-20200202213634563

Python3

同上,可以找出不少读取文件的类,只是这里file变成了open函数

image-20200202213801294

随便找一个

image-20200202213914313

命令执行

利用函数导入os库执行命令

利用本身已经导入os库的类执行命令

利用执行命令

利用执行命令

Python2

利用eavl函数执行命令

先寻找含有eval函数的类

image-20200203101525355

利用本身导入os库的类执行命令

寻找含有os库的类

image-20200203101951477

剩下的两个 ***

查看 *** 的位置

查看的位置

查找模块的位置

查找 *** 的位置(在这里使用可以实现一样的效果,步骤一样,不再复述)

调用 ***

利用commands 进行命令执行

Python3

利用eavl函数执行命令

先寻找含有eval函数的类

image-20200203103031827

利用本身导入os库的类执行命令

寻找含有os库的类

image-20200203101951477

过滤绕过 ***

过滤中括号

过滤引号,过滤class等关键字

是flask中的一个属性,为返回请求的参数,这里把当作变量名,将后面的路径传值进来,进而绕过了引号的过滤

image-20200203113035142

image-20200203113319817

过滤或或

过滤关键字

base64编码绕过

使用实例访问属性时,调用该 ***

例如被过滤掉关键词

字符串拼接绕过

利用hex编码,base64编码,[::-1]等绕过关键词过滤

过滤花括号

使用{% if ... %}1{% endif %}

利用声明变量和内置过滤器

以下 *** 仅在jinja2中实验成功

声明变量

在模板中添加变量,可以使用(set)语句。

语句来创建一个内部的作用域,将语句放在其中,这样创建的变量只在代码块中才有效

image-20200826105403681

变量可以用链接

image-20200826111256677

内置过滤器

变量可以通过 过滤器修改。过滤器与变量用管道符号分割,并且也 可以用圆括号传递可选参数。多个过滤器可以链式调用,前一个过滤器的输出会被作为 后一个过滤器的输入。

例如会移除 name 中的所有 HTML 标签并且改写 为标题样式的大小写格式。

过滤器接受带圆括号的参数,如同函数调用。这个例子会 把一个列表用逗号连接起来:。

image-20200826105902303类似于php中的过滤器,过滤器种类太多,具体项目我复制到另一个文档里了

https://jinja.palletsprojects.com/en/master/templates/#builtin-filters

image-20200826110425905

几个例子

image-20200826110847935

image-20200826111140399

绕过过滤

image-20200826111335097

我们可以利用过滤器构造任意的字符

首先利用属性弄出字符来(没有可以用别的)

image-20200826111702443

结合一些普通 *** ,截取字符,例如单引号:

image-20200826111851168

相关文章

代表法培训(it培训)

代表法培训(it培训) 为了深入贯彻落实《代表法》,增强代表履职的积极性,5月17日,秦东镇人大主席团组织40余名镇六届人大代表,在镇百思特网人大代表活动室进行《代表法》专题学习培训。镇人大主席团成...

在线预约商务陪伴儿的流程潘锦

在线预约商务陪伴小学妹的流程【潘锦】,上海是一座成功人士的聚集地,对商业模特的需求也是比较大的,今天明星商务分享模特访梦,年龄武汉 女 32,婚姻:未婚,学历:高中,气质:在线预约商务陪伴小学妹的流程...

江小白奶茶什么味道 江小白奶茶多少钱

江小白奶茶什么味道 江小白奶茶多少钱

江小白酒的纯粮酒是较为知名的一款近期江小白酒独辟蹊径蹊发布了和乐乐茶的联名鞋新产品,在以高粱为主要原料中加上奶茶店会是哪些的味儿呢。江小白酒奶茶店一种味道 江小白酒奶茶店要多少钱。产生有关详细介绍。...

黑客为什么要盗你QQ号,专业网络黑客婚前调查,黑客强制破解WF密码

https://github.com/3gstudent/test/raw/master/calc_x64.dll6 SerializerSession session) where TBufferW...

以下选项中哪种生物的生命力更强 水熊虫还是水仙花?蚂蚁庄园5月11日

以下选项中哪种生物的生命力更强 水熊虫还是水仙花?蚂蚁庄园5月11日

蚂蚁庄园课堂在5月11日的问题有一个问题就是小鸡宝宝考考你,以下选项中,哪种生物的生命力更强呢?来和小编一起看看正确的答案介绍吧! 5月11日蚂蚁庄园课堂答案 问题:小鸡宝宝考考你,以下选项中...

五万以下做什么生意好(5万以内做什么生意比较

五万以下做什么生意好(5万以内做什么生意比较

适合在三四线城市做的生意很多,能够赚钱的生意并不好找,并不是所有生意都适合你。很多生意虽然赚钱,但都是有特殊的门路,准入门槛放得太高,一般人是很难进得了该行业。虽然道理谁都懂,但我还要说,就是担心太多...