irpas技术客

攻防世界 shrine 详解_盐茶Tea_攻防世界shrine

未知 3559

?打开题目?

?整理源码

代码审计:??? 目标? config['FLAG']

过滤了? config,self 这两个函数的过滤没看懂,总之好像也没过滤掉(应该是过滤了后面的变量),圆括号是彻底的被过滤掉了,URL编码都没用(刚开始想测试XSS来着)

做完后,拿编译器跑了一下带config的payload也没发现过滤

回归正题

2个@app.route 为路由??? 第一个是 /?????? 使用URL/? 可访问index()也就是刚刚开始显示的源码

第二个为/shrine/?? 这个路由用法同理??? URL/shrine/payload

使用模板注入试试看会不会解析出来

可以解析到,说明存在注入

吃老本了,使用Python内置函数读取全局变量?? url_for或者get_flashed_messages

url/shrine/{{url_for.__globals__}}

看到了属性的东西,代码审计的时候有 app.config['FLAG']

调用这个函数 看了其他师傅的WP对这步的解释是?? :

?python沙箱逃逸的方法是 利用python对象之间的引用关系来调用被禁用的函数对象

构造payloads: ??/shrine/{{url_for.__globals__['current_app'].config['FLAG']}}

得到flag

flag{shrine_is_good_ssti}

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

Ending

?

?


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #攻防世界shrine #打开题目整理源码代码审计 #目标 #configFLAG过滤了 #config #self #这两个函数的过滤没看懂