攻防世界之shrine

越来越感觉网络的空虚,网络难道仅仅是虚拟吗?可回到现实还有什么呢?

今天看到了shrine这个字眼,翻译过来就是圣地!当时就吸引我了,让我来会一会这个圣地,他到底哪里神圣了!

查看网页网页源码我们看见,里面有一个/shrine/配置后面可以进行传参,于是初步判断flag在这个配置。

打开之后我们发现是一个404页面,这时我就尝试下报错注入,发现有了回显!

这时尝试直接进行config查看他的配置,但通过代码发现,config被加入了黑名单。这时就可考虑内置函数

通过查看官方文档得到
1.url_for()作用:
(1)给指定的函数构造 URL。
(2)访问静态文件(CSS / JavaScript 等)。 只要在你的包中或是模块的所在目录中创建一个名为 static 的文件夹,在应用中使用 /static 即可访问。
2.globals()作用:
里边所有字典
于是我们变拼接了语句,返回了所有配置,通过查询直接找到我们源码的那个配置

220.249.52.133:42564/shrine/{{url_for.__globals__}}

得到这个信息之后我们直接对他进行config就得到flag,语句如下

220.249.52.133:42564/shrine/{{url_for.__globals__['current_app'].config}}

哈哈哈我还以为有多神圣呢!哈哈哈晚上在更新 一个编程小技巧

留下评论