[BSidesCF-2019]Mixer

image-20241118213754642

主页,有一些提示

1
It looks like you aren't admin, though! Better work on that! Remember, is_admin must bet set to 1 (integer)! And you can safely ignore the rack.session cookie. Like actually. But that other cookie, however....

这就说明可能不是session加密解密了,得用密码学的东西来解释一下了

登录抓包后发现有了一个user的session,肯定不是jwt,也不会是flask的session,密码的话有两个大类的分组密码,一个是加密后的密文参与下一组的明文加密,一个是直接加密的,分组的密文互不影响,这个user很可能是密码加密的,我可以直接修改一点值,将头三个字符换成123

image-20241118214245512

发现存在有正常的回显,那就是互不影响的密码加密(ECB加密)

ECB 加密是 16 位一组, 并且每组互相独立, 加密后每组为 32 位。又因为在JSON 中1.0 = 1,所以如果替换成这样:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
第一个块

{“first_name”:”A

第二个块
1.00000000000000

第三个块
“,”last_name”:”1

第四个块
231″,”is_admin”:

第五个块
0}

将第二块加到第四块后面就行了

1
2
3
s='227f846a99b58fab1ba58859ca38e4af78ba38397fd14ba8a08e18b5cb318e22989561536b419cd4053214349996364eab0cfaf489d5309500bf83df1de3b2f4c2980bfa0bbac594d039877e4d4c14db'
res = s[:128] + s[32:64] + s[128:]
print(res)

参考链接:https://blog.csdn.net/weixin_44037296/article/details/112370510

https://www.shawroot.cc/874.html