• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

攻防世界 shrine

武飞扬头像
盐茶Tea
帮助1

 打开题目 

学新通

 整理源码

学新通

代码审计:    目标  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


 

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgfijfi
系列文章
更多 icon
同类精品
更多 icon
继续加载