2020-09-28

该题,参考
https://github.com/beerpwn/ctf/tree/master/2019/BSidesSF_CTF/web/mixer
打开题目,是一个登录框
在这里插入图片描述提示的大致意思就是“签名”和“ rack.session” cookie并不是该题的考察点
这儿需要我们登录,根据题目提示,我们需用admin登录就能拿到flag,我们先随便登录一下试试
返回了一串cookie user,应该是某种加密
在这里插入图片描述
但是题目并没有提示,尝试解码也并没有特别明显的线索,后来随便改一下user的值,发现报错,并且返回,发现后面的部分发生了乱码
在这里插入图片描述
我们这儿猜测是ECB加密,因为更改前面的密文完全不影响后面的解密。
根据题目我们知道,解码应该为
{"first_name":"ma","last_name":"jian","is_admin":0}
但是题目有个较特殊的性质,只需要将0改为1即可,而且1.00000000 == 1
所以我们可以尝试整块替换
最终构造这个样子,我们知道一般cbc是16字节为一个块的
{"first_name":"A

1.00000000000000

","last_name":"p

aww","is_admin":

0}
所以我们可以分为5块,而加密后是以16进制表示的,所以我们需要的第二块就在32-64,我们把这块加在倒数第二块。
第二块的值为1.00000000000000
最后一块为0},所以结合起来就是
1.000000000000000},再与之前的结合
整体就是
{"first_name":"A1.00000000000000","last_name":"paww","is_admin":1.000000000000000}
我们以账号A1.00000000000000 xxxx登录
得到的cookie为

4b53df97f4941ae9d1f2d1ec8086ce7faec363ec4880cb7538cfbfa565993c6bb06f8f2498d1eb663dab96494bed3b69990235ff0c2f29e285db8dbc0ec32986883a58f9f11c94d4408517899462359e

我们提取第二块加在倒数第二块
cookie_new=cookie[:-32]+cookie[32:64]+cookie[-32:]
得到

4b53df97f4941ae9d1f2d1ec8086ce7faec363ec4880cb7538cfbfa565993c6bb06f8f2498d1eb663dab96494bed3b69990235ff0c2f29e285db8dbc0ec32986aec363ec4880cb7538cfbfa565993c6b883a58f9f11c94d4408517899462359e

替换原来的cookie
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值