CTF-mmmmpy-wp

包含知识点:爆破jwt-key、模板注入

首先爆破jwt-token

需要工具:JohnTheRipper/jwtcrack

登录页面存在一个弱口令,test/test

首先是一个jwt token的爆破,token分为三个段,由三个.分隔,每段是base64编码,可以分别进行解码,第一段是编码的格式、加密采用的算法,中间的部分是需要机密的数据,最后是签名的值,目标服务器会存在一个secret key,当token提交后,将签名和key进行验证,如果验证通过,身份就是合法的

token和cookie是不一样的,token只会在本机存储,当提交token后,服务器之存了一个secret key,

前两段解密,第三部分不用解码

{"alg":"HS256","typ":"JWT"}.{"username":"test"}.80ohpphZmbBgvim4l1wJwDj5bynPlBfshTtHsrcELx0

如果直接把test换成admin,再转回base64也是不可以的,因为签名不一样,签名是由secret key生成的,token是服务器下发的,我们也不会有这个key,

然后利用jwtcrack对签名进行解密,

获得密钥后可以伪造一个JWT token ,前提是需要有一个secret key

https://jwt.io,访问太慢,放弃了

把之前的token复制过来,会提示签名是不对的,因为没有在右下角那写上key,

把key 6a423输入后,将test改为admin,生成一个新的token

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VybmFtZSI6ImFkbWluIn0.IXEkNe82X4vypUsNeRFbhbXU4KE4winxIhrPiWpOP30

然后使用新的toke进行登录

修改cookie后刷新页面就是admin账户了,会多一个留言板

在留言板输入内容后会显示到页面上,一般会想到是不是XSS,但是如果是xss的话是没办法拿flag的,

这部分考点是SSTI 模板注入

先进性一些测试,看一下哪些语句可以用,哪些不可用

将一些非法操作都过滤为None了,可能只能读东西,不能拿到shell

关于 SSTI Bypass

方法一,

盲注