[WesternCTF2018]shrine

93e32f072ae048d18c9d6599bfc8d45c.png

位置混乱看不太清直接查看源代码

44a1e62ef9104fcd83cdf13b3af12b5d.png

引入两个模块,一个flask,一个os。

然后用app.route装饰器传了两个路径,测试访问一下这个路径

714440a180854397a732c07b810c6c36.png

发现显示到了上面,尝试模板注入

58d4447a434a44f896f785abb17a5b36.png

如果没有黑名单的时候,我们可以传入 config,或者传入{{self.dict}}获取,但当这些被过滤的时候,current_app,这是全局变量代理,查看他的config即可,源代码会发现这里过滤了()和把’config’,’self’加入了黑名单

那么原来格式的模板注入就不能用了,

这里可以利用两个python自带的函数来进行注入

url_for这个可以用来构造url,接受函数名作为第一个参数

get_flashed_message()是通过flash()传入闪现信息列表的,能够把字符串对象表示的信息加入到一个消息列表,然后通过调用get_flashed_message()来取出。
/shrine/{{url_for.globals}}

cd61ff98d47247baa341543e8a5804eb.png

在里面打开current_app

{{url_for.__globals__[‘current_app’].config}}

另外一个方法 get_flashed_messages利用信息闪现的方法构造一样(只能显示一次)

/shrine/{{get_flashed_messages.globals[‘current_app’].config}}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值