【BSidesCF】Mixer

【BSidesCF】Mixer

截包,改一下cookie发现加密前的cookie结构:

原结构应为:{"first_name":"admin","last_name":"admin","is_admin":0}(cookie中的user值最后一位从e改成了a)

是CBC加密的特征,此处构造攻击使is_admin:1,具体攻击方法可参考:CBC具体攻击方法及原理

尝试整块替换:{"first_name":"A1.00000000000000","last_name":"hhhh","is_admin":0}

每十六位一块,加密后用十六进制表示因此每块32位

{"first_name":"A
1.00000000000000
","last_name":"h
hhh","is_admin":
0}​

cookie:

<!--为了便于观察,原为一行-->
9dd9501454f1d5ee3ee1b6c392863e33
a1a082b3710ac40c387e2adabbf2c080
97f0e38bf04de0fe1ac716a3f8a62592
5b39faa2b376c9209346af961f0f92ff
365ab185ebe5567c577aaa630787ee19

由于CBC是分块加密,因此只要保正一次替换一整块的内容,就能够正常解析,此时将加密后的第二块内容加到倒数第二块

9dd9501454f1d5ee3ee1b6c392863e33 // {"first_name":"A
a1a082b3710ac40c387e2adabbf2c080 // 1.00000000000000
97f0e38bf04de0fe1ac716a3f8a62592 // ","last_name":"h
5b39faa2b376c9209346af961f0f92ff // hhh","is_admin":
a1a082b3710ac40c387e2adabbf2c080 // 1.00000000000000
365ab185ebe5567c577aaa630787ee19 // 0}

这时cookie实际为:{"first_name":"A1.00000000000000","last_name":"hhhh","is_admin":1.000000000000000},就能够满足题目要求

cookie = '9dd9501454f1d5ee3ee1b6c392863e33a1a082b3710ac40c387e2adabbf2c08097f0e38bf04de0fe1ac716a3f8a625925b39faa2b376c9209346af961f0f92ff365ab185ebe5567c577aaa630787ee19'
a = cookie[:-32]+cookie[32:64]+cookie[-32:]

 

 

By Wander

posted @ 2020-06-05 13:20  B216三个👎👎  阅读(263)  评论(0)    收藏  举报