BUUCTF [BSidesCF 2019] Mixer

BUUCTF [BSidesCF 2019] Mixer

考点:

  1. 图解分组密码五大工作模式
  2. ECB模式加密拆解构造

启动环境:
在这里插入图片描述
页面提示需要提升权限,并且提到了cookie,输入框中还有不能输入的is_admin属性
修改前端,使其值等于1

<input type="text" class="name" disabled="1" value="1">

随意输入First nameLast name查看回显:
在这里插入图片描述
提示了需要以admin身份登陆,并将is_admin设置为1,使用BurpSuite抓取数据包:
在这里插入图片描述
使用Repeater发送后,获得回显:
在这里插入图片描述
其存在Set-Cookie字样,将回显页面刷新,重新抓取数据包:
在这里插入图片描述
得到了其Cookie

user=263b220db546fce7fa8f2ff161f836c51beb4a501c28b01d69dfcba62631bfd6a1f3ec4b16eeb7039c044a87d3206ecb15fd49a93d10d8c3917b024cd534c17b; rack.session=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiRWFmNDg5NzQ1YjM0MjUxMmFkNzc0%0AMWYzZTE5YzI3ODEzNDgyMmRlOTA1OGJiYjM2Y2M1MjA2NjFkOGZiYzUwODYG%0AOwBGSSIMYWVzX2tleQY7AEYiJY9KXebdt%2FZ1upUj4nMb%2FBNDIPff8k5riHuK%0AJqBZHv0U%0A--b23edaf66d480964e13a229e4f409d8754a94835

因为其提示和rack.session无关,所以尝试修改user的前三位为111,查看回显:
在这里插入图片描述
成功得到报错内容,因为改动了开头,所以只有后半部分是完整的,相同方式获取前面的内容,也就是修改偏后方的三位为111,得到回显:
在这里插入图片描述
完整的user解密为:

{"first_name":"first","last_name":"last","is_admin":0}

查阅资料:图解分组密码五大工作模式
本题也就是每块内容被分成固定的大小块单独加密,推测为ECB模式,若是CBC模式,修改前面内容,后面内容会变成乱码。

ECB加密是16位一组,每组相互独立,加密后每组为32位,尝试整块替换,并且在json1.00 == 1

首先构造被加密的字符串:

{"first_name":"A1.00000000000000","last_name":"last","is_admin":0}

可以将字符串拆分为5组,也就是:

# 第一组
{"first_name":"A

# 第二组
1.00000000000000

# 第三组
","last_name":"l

# 第四组
ast","is_admin":

# 第五组
0}

将加密后的第二组放到第四组的后面,构成:

"is_admin":1.00000000000000

完成了构造,那么就需要加密后的cookie,因为没有加密所需的key,所以通过原页面完成,构造登陆内容:

first name = A1.00000000000000
last name = last

提交表单后,获取到user的值:

b20e97737c12bfa4aa4b2426c48527681bf69e842fec030ee35bcfe578e91b1157a3a96575f74f2ab7b289a3e4da30f32c85e2383de1b089993d200a66e2faa4fed061c9eaac7b3a19b1399cd05010cf

前四组不用动,也就是到128前,将3264位作为第二组内容取出,并拼接至第四组后,使用Python3:

s = "b20e97737c12bfa4aa4b2426c48527681bf69e842fec030ee35bcfe578e91b1157a3a96575f74f2ab7b289a3e4da30f32c85e2383de1b089993d200a66e2faa4fed061c9eaac7b3a19b1399cd05010cf"

res = s[:128] + s[32:64] + s[128:]
print(res)

得到构造好的flag:

b20e97737c12bfa4aa4b2426c48527681bf69e842fec030ee35bcfe578e91b1157a3a96575f74f2ab7b289a3e4da30f32c85e2383de1b089993d200a66e2faa41bf69e842fec030ee35bcfe578e91b11fed061c9eaac7b3a19b1399cd05010cf

将其替换到user中:
在这里插入图片描述
发送数据包,得到flag:
在这里插入图片描述

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值