?打开题目?
?整理源码
代码审计:??? 目标? 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 #这两个函数的过滤没看懂